如何在Django Admin中实现定时任务和调度

2023-04-11 00:00:00 调度 定时 如何在

要在Django Admin中实现定时任务和调度,可以使用Django定时任务库django-crontab,具体步骤如下:

1.安装django-crontab

pip install django-crontab

2.在Django的settings.py中添加以下配置

INSTALLED_APPS = [
    ...,
    'django_crontab',
]

CRONJOBS = [
    ('*/1 * * * *', 'myapp.tasks.my_task'),  # 每分钟执行一次my_task任务
]

这个配置会在每分钟执行一次my_task任务,其中/1 * * *表示每分钟都执行,myapp.tasks.my_task表示执行的任务路径。

3.在myapp下创建tasks.py文件,并添加需要执行的函数

from django_cron import CronJobBase, Schedule


class MyCronJob(CronJobBase):
    RUN_EVERY_MINS = 1

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'myapp.my_task'

    def do(self):
        # 这里是需要执行的代码
        print("pidancode.com")

4.最后,在Django Admin中注册CronJob

from django_cron import CronJobRegistry

# 在这里注入CronJob
registry = CronJobRegistry()
registry.register(MyCronJob)

现在,每分钟就会执行一次my_task任务,并且可以在Django Admin的CronJob页面上看到相关的调度情况。

相关文章