Python django cron不工作

Python django cron不工作,python,django,django-cron,Python,Django,Django Cron,在正确安装django_cron之后,我在django app中编写了以下名为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 Chec

在正确安装django_cron之后,我在django app中编写了以下名为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”放入python路径中

  • 将“django\u cron”添加到settings.py文件中已安装的\u应用程序中

  • 将以下代码添加到URL.py文件的开头(就在导入之后): 导入django_cron django_cron.autodiscover()

  • 在要向其添加定期作业的每个已安装应用程序中创建一个名为“cron.py”的文件

  • 更新httpd.conf中的MaxRequestsPerChild并将其设置为100

  • 更新django_cron中的base.py并将轮询频率设置为30(小于run_every)

  • 有人能找出为什么django_cron在这种情况下不工作吗?
    提前谢谢。

    我猜您正在守护程序模式下运行mod_wsgi

    第四步建议django cron在重新加载整个代码库时运行作业,当Apache重新加载时,mod_python或embedded mod_wsgi(嵌入式)会这样做,但mod_wsgi(守护进程)不会

    更好的解决方案是将脚本添加到系统cron中


    如果必须使用django cron,则需要在mod_wsgi的DaemonProcess配置上设置最大请求数,或者将其设置为运行embedded。出于性能和可靠性的考虑,我不能推荐这两种方法。

    您应该在数据库中检查以下内容:

    1-同步数据库后,应出现表:“django_cron_cron”和“django_cron_job”

    2-确保将django\u cron\u job.queued设置为1(如果cron作业崩溃,它将设置为0并且不再运行)


    3-确保django\u cron\u cron.executing设置为0(否则cron认为此作业仍在运行)

    有时由于日志原因,它无法工作。如果设置中有django日志路径。Cron希望使用它