在Django中實現定時任務的方式有兩種常用的方法:
安裝Celery:
pip install celery
創建Celery任務:
# 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()
啟動Celery worker:
celery -A myapp worker --loglevel=info
安裝Django-crontab:
pip install django-crontab
在Django項目的settings.py中配置定時任務:
# settings.py
CRONJOBS = [
('*/1 * * * *', 'myapp.tasks.my_task'), # 每隔1分鐘執行my_task任務
]
在Django項目的urls.py中添加定時任務的url:
# urls.py
from django_crontab import urls
urlpatterns = [
# other urls
path('django_crontab/', include('django_crontab.urls')),
]
運行定時任務命令:
python manage.py crontab add
以上是兩種在Django中實現定時任務的常用方法,可以根據具體的需求選擇合適的方式。