在Django中實(shí)現(xiàn)定時(shí)任務(wù)的方式有兩種常用的方法:
安裝Celery:
pip install celery
創(chuàng)建Celery任務(wù):
# tasks.py
from celery import Celery
app = Celery('myapp', broker='redis://localhost:6379/0')
@app.task
def my_task():
# Do something
在Django中使用Celery:
# settings.py
CELERY_BROKER_URL = 'redis://localhost:6379/0'
# views.py
from myapp.tasks import my_task
my_task.delay()
啟動(dòng)Celery worker:
celery -A myapp worker --loglevel=info
安裝Django-crontab:
pip install django-crontab
在Django項(xiàng)目的settings.py中配置定時(shí)任務(wù):
# settings.py
CRONJOBS = [
('*/1 * * * *', 'myapp.tasks.my_task'), # 每隔1分鐘執(zhí)行my_task任務(wù)
]
在Django項(xiàng)目的urls.py中添加定時(shí)任務(wù)的url:
# urls.py
from django_crontab import urls
urlpatterns = [
# other urls
path('django_crontab/', include('django_crontab.urls')),
]
運(yùn)行定時(shí)任務(wù)命令:
python manage.py crontab add
以上是兩種在Django中實(shí)現(xiàn)定時(shí)任務(wù)的常用方法,可以根據(jù)具體的需求選擇合適的方式。