Web2py - Cron任务调试

时间:2012-10-18 17:15:03

标签: module cron web2py

我最近更新到最新版本的web2py(v2.1.1),但即使在之前的版本中,我仍然遇到此问题。

我想要运行一个cron工作。在我努力让cron工作的过程中,我遵循了本教程。看起来很简单的东西很简单。但我一定做错了,因为我不确定这是否有效。

一旦我启动web2py,下面是我的终端。我想每分钟运行3个模块。最后一个模块来自上述教程。我也遵循了教程'logging.conf,以便输出反映在下面:

2012-10-18 16:50:00,060 - web2py.cron - DEBUG - hard cron invocation
2012-10-18 16:50:00,060 - web2py.cron - DEBUG - WEB2PY CRON: Acquiring lock
2012-10-18 16:50:00,061 - web2py.cron - INFO - WEB2PY CRON (hard): ircmessage executing *applications/ircmessage/modules/get_messages.py in /home/web2py/src/web2py at 2012-10-18 16:50:00.061575
2012-10-18 16:50:00,062 - web2py.cron - INFO - WEB2PY CRON (hard): ircmessage executing **applications/ircmessage/modules/addline.py in /home/web2py/src/web2py at 2012-10-18 16:50:00.062092
2012-10-18 16:50:00,065 - web2py.cron - INFO - WEB2PY CRON (hard): ircmessage executing **applications/ircmessage/modules/background_updater.py in /home/web2py/src/web2py at 2012-10-18 16:50:00.065794
2012-10-18 16:50:00,069 - web2py.cron - DEBUG - WEB2PY CRON: Releasing cron lock
2012-10-18 16:50:00,934 - web2py.cron - DEBUG - WEB2PY CRON Call returned success:
>>> 
2012-10-18 16:50:00,938 - web2py.cron - DEBUG - WEB2PY CRON Call returned success:
>>> 
2012-10-18 16:50:00,963 - web2py.cron - DEBUG - WEB2PY CRON Call returned success:

这是我的crontab:

#crontab
0-59/1 * * * * root *applications/ircmessage/modules/get_messages.py
0-59/1 * * * * root **applications/ircmessage/modules/addline.py
0-59/1 * * * * root **applications/ircmessage/modules/background_updater.py

快速浏览一下简单的addline.py模块:

#!/usr/bin/env python
# coding: utf8
from gluon import *
from gluon.debug import dbg

with open("text.txt", "a") as myfile:
    myfile.write("appended text")

dbg.set_trace() # stop here! **

**请注意,我使用了dbg.set_trace - 此跟踪不会出现在管理员的调试部分中。

由于更新到新版本的web2py,我注意到cron任务没有在启动时自动运行(但我可能误解了这个?)。我像这样开始web2py:

./web2py.py -i xxx.xxx.xx.xx -p 8000 -c /etc/ssl/certs/my_cert_file.crt -k /etc/ssl/certs/my_cert_key.key -a apassword --run-cron

如何让最简单的cron任务正常工作的任何建议将不胜感激。关于如何调试cron是否实际被调用的建议也会受到欢迎。实际上,一般的建议会非常有益。

提前感谢您的时间和建议。

1 个答案:

答案 0 :(得分:2)

由于默认情况下禁用了web2py 2.1.1 cron(因为我们希望鼓励使用调度程序)。您需要-Y选​​项才能启用它。