扫描MySQL表以获取更新Python

时间:2012-07-19 18:48:04

标签: python mysql

我正在创建一个依赖于MySQL表信息的GUI,我希望能够在每次使用新数据更新表时显示一条消息。我不知道该怎么做,即使有可能。我有代码检索最新的MySQL更新,但我不知道每次新数据进入表时如何收到消息。谢谢!

2 个答案:

答案 0 :(得分:3)

非常简单直接的解决方案就是从您的表中查询最新的自动增量ID,并将其与您在上一次民意调查中看到的内容进行比较。如果它更大 - 你有新的数据。这称为“主动轮询”,它实施起来很简单,如果不经常这样做就足够了。因此,您必须将最后一个id值存储在GUI中的某个位置。请注意,重新启动GUI应用程序时,此存储值将重置 - 请务必考虑在GUI开始时执行的操作。可能您需要仅跟踪GUI运行时发生的插入 - 然后,在GUI启动时,您只需要轮询并存储当前的id值,然后进行有效轮询并对其更改做出反应。

答案 1 :(得分:1)

@spacediver对主动轮询方法提出了一些很好的建议。我也想发布其他一些选项。

您可以使用某种类型的消息传递来在客户端之间进行通信。 ZeroMQ,twisted等提供这些功能。一种方法是让更新客户端发出消息以及成功的数据库插入。客户端都可以监听通道而不是始终轮询数据库。

如果您无法控制向执行插入的客户端添加更新消息,您还可以查看this link是否使用数据库触发器来调用脚本,该脚本只会向您的消息传递框架发出更新消息。它解释了安装UDF扩展以允许您在触发器中运行sys_exec命令并调用简单脚本。

这样客户只需响应通知而不是全部检查。