Python - 运行脚本时更新配置

时间:2011-05-10 11:22:54

标签: python

我有一个不断轮询数据的python脚本。该脚本不断运行,永远不会停止。

脚本轮询来自首次运行脚本时传递给它的关键字轨道的数据。

在不停止脚本的情况下,从另一个python脚本更新此曲目的最佳方法是什么?

我能想到的唯一解决方案是将轨道存储在txt文件中,并检查设置计时器上文件的任何更新。看起来有点乱。

5 个答案:

答案 0 :(得分:5)

将此设置文件封装在数据库中会更好。一个简单的SQLite DB文件就足够了 - SQLite内置了Python支持,因此不需要额外的工作。

数据库的优势在于您不会遇到部分写入文件等的竞争条件。"配置 - 添加"脚本使用事务添加关键字,而从DB读取的其他脚本只有在完成后才能看到它。请记住,不要在周期性脚本中始终打开数据库。每隔一段时间,打开它,阅读关键字并关闭它。

答案 1 :(得分:3)

轮询配置文件并不是很混乱,而是解决此问题的一种非常常见的解决方案。你应该选择它。

答案 2 :(得分:2)

如果您使用的是Linux,则可以尝试pyinotify。示例here

答案 3 :(得分:1)

我同意存储在文件中的跟踪数据,然后使用signal module通知您的脚本新的跟踪数据已准备好被读取,将函数绑定到SIGUSR1,并且您已完成,没有风险部分书面文件。

在你的剧本中:

import signal

signal.signal(signal.SIGUSR1, read_track_data)

然后,(Linux方式,但将在Windows中大不相同)只是在更新跟踪数据文件后立即向您的脚本发送信号。

$kill -n 10 PID_OF_YOUR_SCRIPT

答案 4 :(得分:0)

您可以使用套接字传递两个脚本