查看单个帖子
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在Matlab中处理MySQL关闭?

大家问候

我正在编写一个程序,该程序在Matlab上从MySQL数据库进行查询和分析,并将大量数据从一个数据库解析到另一个数据库。随着新数据每分钟进入第一个数据库,被清洗并在下一个数据点进入之前放入干净的数据库,这将连续运行。我想知道在此过程中如何解释两件事。 。
  1. MySQL每三晚关闭一次进行备份。我希望程序在发生这种情况时暂停,并在备份时恢复。我一直在寻找解决方案,但似乎找不到解决方案。
  2. 允许用户杀死该程序。我将范围缩小到要么考虑ctrl + c杀死,要么创建GUI来实现。你们都认为哪种策略更好?
在此先感谢您的宝贵时间和帮助。



回答:

TIMER与GUI一起使用。

首先,创建带有两个切换按钮的GUI-“暂停”和“取消”。程序启动时,启动GUI并捕获其句柄。将此句柄传递给计时器对象。每当将计时器对象设置为执行时,都应将“暂停”按钮的“值”属性设置为1,并在计划维护结束时将其设置为0。同时,我假设您正在运行的程序(while循环)应在每次迭代时检查暂停按钮的值。如果按下按钮(即其值为1),则程序不应尝试访问数据库。如果释放按钮,程序应正常运行。

当程序检查暂停按钮是否按下时,它还应该检查“取消”按钮是否按下。如果按下该按钮,该函数应break循环并正常退出。

在GUI中,您还可以设置closeRequestFcn ,在其中打开一个对话框弹出窗口,询问用户是否真的要退出正在运行的数据库程序。如果用户选择“是”,则隐藏GUI( set(guiHandle,'Visible',false) )并“按”取消按钮,以便程序退出。当您关闭Matlab而不先停止程序时,closeRequestFcn也将执行。这可以帮助您避免意外关闭Matlab并因此而意外终止进程。



更多&回答...
poster 当前离线   回复时引用此帖