Python, Django and event loop (periodic jobs)
我正在为在Debian Linux下使用Django + WSGI + Apache的服务器开发Python应用程序。 该应用程序具有Web界面以及
命令行界面(仍然使用Django模型...,只是不使用视图和模板)。
数据库后端是SQLite3。
该应用程序还需要定期运行一些作业。 我编写了一个类似Unix的守护进程,该守护进程使用python-gobject和python-glib并运行以下作业:
1 2 3 4 5 6 | 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数据库中读写。 一个用于apache + wsgi,另一个用于我自己的守护程序。 (或事件3 Python实例,当我使用命令行界面时)
我的问题是,推荐我做什么? 将那些timeout_add和MainLoop放入我的" dj_survey.wsgi"中,以在Apache启动时运行?
不,您不想在apache /任何WSGI环境中运行后台进程。
在外壳上启动它们,并使用某种方法与后台进程进行通信。