Django是一个高级Python Web框架,它鼓励快速开发和干净、实用的设计。在Django中实现周期性任务,通常会用到第三方库如django-crontab
或Celery
。这里提到的“芹菜”可能是“Celery”的误打,因为Celery是一个强大的分布式任务队列,非常适合处理周期性任务。
celery.py
文件,并配置Celery实例。@periodic_task
装饰器定义周期性任务,并设置执行频率。以下是一个简单的示例,展示如何在Django项目中使用Celery设置周期性任务:
# myproject/celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
# 设置默认的Django设置模块
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
app = Celery('myproject')
# 使用字符串来配置Celery,这样Celery不需要序列化对象
app.config_from_object('django.conf:settings', namespace='CELERY')
# 自动从已安装的应用中发现任务
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')
# myapp/tasks.py
from celery.schedules import crontab
from celery.task import periodic_task
from django.utils import timezone
@periodic_task(run_every=crontab(hour=0, minute=0)) # 每天午夜执行
def my_scheduled_task():
print(f'Task executed at {timezone.now()}')
请注意,以上代码和配置可能需要根据你的具体项目环境进行调整。
领取专属 10元无门槛券
手把手带您无忧上云