Django中的任務調度可以通過以下方法進行使用:
INSTALLED_APPS = [
...
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.admin',
'django_crontab', # 添加此行
...
]
然后,在settings.py文件的末尾添加以下代碼:
CRONJOBS = [
('*/15 * * * *', 'myapp.tasks.my_task'), # 每15分鐘執行一次my_task函數
]
最后,在項目的根目錄下運行以下命令以安裝任務調度器:
python manage.py crontab add
pip install celery
然后,在settings.py文件中添加以下代碼:
INSTALLED_APPS = [
...
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.admin',
'celery', # 添加此行
...
]
CELERY_BROKER_URL = 'redis://localhost:6379' # 設置消息代理的URL,這里使用了Redis
CELERY_RESULT_BACKEND = 'redis://localhost:6379' # 設置任務結果的后端
CELERY_BEAT_SCHEDULE = {
'my_task': {
'task': 'myapp.tasks.my_task', # 任務所在的函數
'schedule': 15*60, # 每15分鐘執行一次
},
}
然后,在項目的根目錄下運行以下命令以啟動Celery任務調度器:
celery -A myproject worker --beat
以上是兩種常見的在Django中使用任務調度的方法。您可以根據自己的需求選擇適合的方法來進行任務調度。