django-crontab定时任务无法自动执行,求排查问题原因
Django定时任务无法自动执行问题排查
环境与配置说明
我有一个Django项目,包含名为app的应用,该应用下有cron.py文件,里面定义了my_job()函数,希望它每分钟执行一次。
settings.py配置(路径:django-project/django-project/settings.py)
INSTALLED_APPS = [ 'django_crontab', ... ] ... CRONJOBS = [ ('*/5 * * * *', 'app.cron.my_job') ]
cron.py内容(路径:django-project/app/cron.py)
from .models import TestModel def my_job(): TestModel.objects.create(number=100) return True
已执行的操作
- 执行命令:
python3 manage.py crontab add,终端输出:
adding cronjob: (62dd7536ac2c985925ee33743a070a4c) -> ('*/5 * * * *', 'app.cron.my_job')
- 执行命令:
python3 manage.py crontab show,终端显示:
Project/ccc_nema -> ('*/5 * * * *', 'app.cron.my_job')
- 尝试手动执行任务时,输入
python3 manage.py crontab run someHash,报错:
Traceback (most recent call last): File "/home/anik/Workplace/Office Project/ccc_nema v2/core/manage.py", line 22, in <module> main() File "/home/anik/Workplace/Office Project/ccc_nema v2/core/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line utility.execute() File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, **cmd_options) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute output = self.handle(*args, **options) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django_crontab/management/commands/crontab.py", line 29, in handle Crontab().run_job(options['jobhash']) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django_crontab/crontab.py", line 126, in run_job job = self.__get_job_by_hash(job_hash) File "/home/anik/Workplace/Office Project/ccc_nema v2/env_python/lib/python3.10/site-packages/django_crontab/crontab.py", line 171, in __get_job_by_hash raise RuntimeError( RuntimeError: No job with hash someHash found. It seems the crontab is out of sync with your settings.CRONJOBS. Run "python manage.py crontab add" again to resolve this issue!
核心问题
无论等待多久,定时任务都无法自动执行,请问我哪里操作出错了?
内容的提问来源于stack exchange,提问作者Anik Saha
相关产品推荐
相关产品推荐

