正确安装django_cron之后,我在django应用程序中编写了名为cron.py的代码,调用django_cron执行。但是这太奇怪了,这个脚本根本不起作用!
from django_cron import cronScheduler, Job
from mysite.tds.models import machine_list,flavor_list,image_list
from mysite.views import *
import datetime,os
class CheckExpire(Job):
run_every = 60
def job(self):
mac_list = machine_list.objects.filter(expire_date=datetime.date.today())
for lst in mac_list:
delete_vm(lst.servername)
nagios_delete(lst.servername,lst.machine_ip)
mac_list.delete()
cronScheduler.register(CheckExpire)如果我把上面的代码写在其他脚本中并运行这个脚本,那么上面的代码就可以成功地执行,所以这些代码没有错误。
我发布了关于如何安装django-cron的步骤,让你们检查我是否正确地安装了它。
有人能弄明白为什么django_cron在这种情况下不能工作吗?提前谢谢。
发布于 2012-08-20 12:00:06
我猜您是在守护进程模式下运行mod_wsgi。
第4步建议django-cron在重新加载整个代码库时运行作业,而mod_python或embedded mod_wsgi (embedded)将在Apache重新加载时运行作业,而mod_wsgi (守护进程)则不会。
一个更好的解决方案就是将脚本添加到系统cron中。
如果必须使用django-cron,则需要在DaemonProcess配置的mod_wsgi上设置最大请求,或者将其设置为运行嵌入式。由于性能和可靠性方面的原因,我不能推荐这两种方法。
发布于 2012-10-11 22:55:45
您应该在数据库中签入一些内容:
1-同步数据库后,应该会出现表:'django_cron_cron‘和'django_cron_job’。
2-确保django_cron_job.queued设置为1 (如果您的cron作业崩溃,它将被设置为0并不再运行)
3-确保django_cron_cron.executing设置为0(否则cron认为该作业仍在运行)
发布于 2018-02-07 19:31:09
有时,由于日志的原因,它无法工作。如果在设置中有django日志路径。克伦想用它。
https://stackoverflow.com/questions/12035076
复制相似问题