2010-07-30 47 views
0

問候所有 -如何在Matlab中處理MySQL關機?

我正在寫一個程序,分析和清理大量數據從一個數據庫到另一個在Matlab上,從MySQL查詢。這將持續運行,因爲新數據每分鐘進入第一個數據庫,被清理,並在下一個數據點進入之前放入乾淨的分貝。我想知道在這個過程中,我可以解釋兩件事。 。

  1. 每三個晚上MySQL關機備份。我希望我的程序在發生這種情況時暫停,並在恢復時恢復。我已經四處尋找解決方案,並且似乎無法爲此找到一個解決方案。

  2. 允許用戶殺死該程序。我已經縮小了這個範圍,或者考慮了ctrl + c kill,或者創建了一個GUI來完成它。你們都認爲哪個更好的策略?

在此先感謝您的時間和對此事的幫助。

回答

0

與GUI一起使用TIMER

首先,創建一個帶兩個切換按鈕的GUI - '暫停'和'取消'。當你的程序啓動時,啓動GUI並捕獲它的句柄。將此句柄傳遞給計時器對象。每當定時器對象設置爲執行時,它應該將「暫停」按鈕的'Value' property設置爲1,並在計劃維護結束時將其設置回0.同時,我認爲您的程序正在運行一段時間循環,應在每次迭代時檢查暫停按鈕的值。如果按下該按鈕(即其值爲1),則該程序不應嘗試訪問數據庫。如果按鈕被釋放,程序應該照常運行。

當程序檢查按下暫停按鈕時,它還應檢查按下「取消」按鈕。如果按下該按鈕,該函數應該循環並正常退出。

在GUI中,您還可以設置一個closeRequestFcn,在該對話框中打開對話框以詢問用戶是否真的想要退出正在運行的數據庫程序。如果用戶選擇「是」,則隱藏GUI(set(guiHandle,'Visible',false))並「按下」取消按鈕,以便程序可以退出。 closeRequestFcn也會在您沒有先停止程序的情況下關閉Matlab時執行。這可以幫助您避免意外關閉Matlab,從而意外地終止您的過程。

+0

感謝您的幫助,我會試試這個,並在稍後報告! – Joey 2010-08-03 18:01:13

+0

好吧,我一直在設置我的GUI的暫停按鈕的值屬性。 GUI被命名爲GLEONQAGUI。我運行下面的代碼來捕獲它的句柄。 >> handles = guihandles(GLEONQAGUI)... 現在我該如何修改這些手柄來將Pause按鈕設置爲max或min?我試過set(handles.togglebutton1,'Value','Max')無濟於事。感謝您的持續支持。 – Joey 2010-08-03 19:31:57

+0

'set(handles.togglebutton1,'Value',1)'。此外,如果您發現我的答案有用,請考慮接受它。 – Jonas 2010-08-03 20:54:41