我正在尝试使用Django-cron定期在我的Django服务器上运行脚本。似乎cronScheduler正在将Test类注册为“class ran”打印到我的终端,但我没有发现任何迹象表明作业已经运行(即我没有看到“job ran”打印到终端)。如果我不应该依赖打印来了解作业是否正在运行,我还会在我的数据库中查看django_cron_job表几分钟,看看在最初向我的服务器发送请求后作业的“last_run”值是否发生了变化但我发现它没有。
您也知道:每当我测试我一直在使用一个请求命中我的服务器以便作业开始时,我已将我的设置文件中的CRON_POLLING_FREQUENCY
修改为低于{{1}我为作业指定的值,并确保根据此帖子的建议将作业设置为排队:Similar problem。
为了解决我最初得到的错误(“AttributeError:'设置'对象没有属性'PROJECT_DIR'”),我在settings.py中将PROJECT_DIR设置为run_every
。这可能是个问题吗?
当我启动服务器时,我也得到以下内容,但我已经查看了它,并且找不到任何原因导致问题出现:
“运行时警告:DateTimeField收到了一个天真的日期时间(2013-07-23 13:55:56.016085),而时区支持处于活动状态。”
唯一需要注意的是,我经常在重新启动服务器并使用请求命中服务器几秒后将以下打印输出检索到终端,但只有一次才会重新启动服务器:
“已经执行了 哎呀! pid 17099的进程未运行。 修复db中的状态。 验证模型......“
我的cron.py文件:
os.path.dirname(__file__)
答案 0 :(得分:1)
知道了:发布后我再次查看了几次,发现数据库中的last_run
日期比我当前时间早了几个小时,所以我的工作不认为它需要开始直到最后点击那个时间+我的run_every
规范。所以DateTimeField RuntimeWarning 毕竟是的问题。我通过手动更改last_run日期测试了它,并按预期获得了打印输出。现在我只需要弄清楚如何解决这个与时区相关的问题。希望这可以帮助别人!