San*_*ego 2 python django cron scheduled-tasks
我在互联网上搜集了Django中预定工作的工作示例。但是我只能找到方法,但是没有给出任何例子。有人可以分享使用cron运行受保护的任务的Django框架的工作示例吗?
首先创建一个自定义的admin命令。此命令将用于将任务添加到crontab。这是我的自定义命令的示例:
cron.py
from django.core.management.base import BaseCommand, CommandError
import os
from crontab import CronTab
class Command(BaseCommand):
help = 'Cron testing'
def add_arguments(self, parser):
pass
def handle(self, *args, **options):
#init cron
cron = CronTab(user='your_username')
#add new cron job
job = cron.new(command='python <path_to>/example.py >>/tmp/out.txt 2>&1')
#job settings
job.minute.every(1)
cron.write()
Run Code Online (Sandbox Code Playgroud)
之后,如果您看下面的代码,将每1分钟调用一次python脚本。创建一个example.py文件,并在其中添加您要每1分钟执行的功能。
所有人都准备添加计划的作业,只需从项目django目录调用以下命令:
python manage.py cron
Run Code Online (Sandbox Code Playgroud)
要验证是否成功添加了cron作业,请调用以下命令:
crontab -l
Run Code Online (Sandbox Code Playgroud)
您应该会看到以下内容:
* * * * * <path_to>/example.py
Run Code Online (Sandbox Code Playgroud)
要调试example.py,只需调用以下命令:
tail -f /tmp/out.txt
Run Code Online (Sandbox Code Playgroud)