【发布时间】:2012-02-15 13:12:37
【问题描述】:
我正在为在 Debian Linux 下使用 Django + WSGI + Apache 的服务器开发 Python 应用程序。该应用程序具有Web界面以及
命令行界面(仍然使用 django 模型...,只是不使用视图和模板)。
数据库后端是 SQLite3。
此应用程序还需要定期运行一些作业。我编写了一个使用 python-gobject 和 python-glib 的类 unix 守护进程,并像这样运行这些作业:
gobject.timeout_add_seconds(seconds, someCallback...)
gobject.timeout_add_seconds(seconds, someCallback...)
...
gobject.timeout_add_seconds(seconds, someCallback...)
glib.MainLoop().run()
我测试了一下,sqlite db写入数据有一些奇怪的问题。我认为这是因为有两个 Python 实例从/向单个 sqlite db 读取和写入。一个用于 apache+wsgi,一个用于我自己的守护进程。 (或事件 3 Python 实例,当我使用命令行界面时)
我的问题是,建议我做什么?将那些 timeout_add 和 MainLoop 放在我的“dj_survey.wsgi”中以在 apache 启动时运行?
【问题讨论】:
-
芹菜不适合你吗? periodic tasks 功能似乎非常适合您的需求。
-
是的,我正在阅读它。不过这个话题让我有点怀疑stackoverflow.com/questions/8404325/…
-
因为我不需要太多的功能!只是一些简约和稳定的东西。
-
我换个问题:我可以在wsgi环境中运行jsonrpc服务器吗?
-
我看到了wsgi-jsonrpc,但是我怕django不允许我有两个wsgi应用!