2010-07-30 45 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