1

我正在为在 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 启动时运行?

4

1 回答 1

3

不,您不想在 apache/任何 WSGI 环境中运行后台进程。

在 shell 上启动它们并使用某种方法与您的后台进程进行通信。

于 2012-02-15T13:13:37.127 回答