正确安装 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 路径
在您的 settings.py 文件中将 'django_cron' 添加到 INSTALLED_APPS
将以下代码添加到 urls.py 文件的开头(就在导入之后): import django_cron django_cron.autodiscover()
在要添加重复作业的每个已安装应用程序中创建一个名为“cron.py”的文件。
更新 httpd.conf 中的 MaxRequestsPerChild 并将其设置为 100
更新 django_cron 中的 base.py 并设置 polling_frequency 30(小于 run_every)
有人能弄清楚为什么 django_cron 在这种情况下不起作用吗?提前致谢。