Django的Cron示例

San*_*ego 2 python django cron scheduled-tasks

我在互联网上搜集了Django中预定工作的工作示例。但是我只能找到方法,但是没有给出任何例子。有人可以分享使用cron运行受保护的任务的Django框架的工作示例吗?

San*_*ego 5

首先创建一个自定义的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)