django瀹氭椂浠诲姟閲嶅鎵ц鎬庝箞瑙e喅
鍦―jango涓紝鍙互浣跨敤Celery搴撴潵瀹炵幇瀹氭椂浠诲姟鐨勯噸澶嶆墽琛屻€侰elery鏄竴涓垎甯冨紡浠诲姟闃熷垪锛屽彲浠ヨ浣犲湪鍚庡彴寮傛鎵ц浠诲姟锛屽寘鎷畾鏃朵换鍔°€?/p>
涓嬮潰鏄竴涓畝鍗曠殑浣跨敤Celery瀹炵幇瀹氭椂浠诲姟鐨勭ず渚嬶細
- 瀹夎Celery锛氶鍏堥渶瑕佸畨瑁匔elery搴撱€傚彲浠ヤ娇鐢╬ip鏉ュ畨瑁匔elery锛?/li>
pip install celery
- 鍒涘缓Celery瀹炰緥锛氬湪Django椤圭洰涓垱寤轰竴涓猚elery.py鏂囦欢锛岀敤鏉ラ厤缃瓹elery瀹炰緥锛?/li>
from celery import Celery
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
app = Celery('your_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
- 鍒涘缓浠诲姟锛氬湪Django搴旂敤涓垱寤轰竴涓猼asks.py鏂囦欢锛屽畾涔夐渶瑕佹墽琛岀殑浠诲姟锛?/li>
from celery import shared_task
@shared_task
def my_task():
# 浣犵殑浠诲姟閫昏緫
- 鍚姩Celery worker锛氬湪椤圭洰鏍圭洰褰曚笅杩愯浠ヤ笅鍛戒护鍚姩Celery worker锛?/li>
celery -A your_project worker --loglevel=info
- 閰嶇疆瀹氭椂浠诲姟锛氬彲浠ヤ娇鐢–elery鐨勫畾鏃朵换鍔¤皟搴﹀櫒鏉ラ厤缃换鍔$殑鎵ц鏃堕棿銆備緥濡傦紝鍦╟elery.py鏂囦欢涓坊鍔犱互涓嬩唬鐮侊細
from celery.schedules import crontab
app.conf.beat_schedule = {
'my-task': {
'task': 'your_app.tasks.my_task',
'schedule': crontab(hour=0, minute=0), # 姣忓ぉ鍑屾櫒鎵ц浠诲姟
},
}
浠ヤ笂灏辨槸浣跨敤Celery搴撳疄鐜板畾鏃朵换鍔$殑绠€鍗曠ず渚嬨€傞€氳繃Celery鐨勫畾鏃朵换鍔¤皟搴﹀櫒锛屼綘鍙互閰嶇疆浠诲姟鐨勬墽琛屾椂闂达紝璁╀换鍔℃寜鐓ц瀹氱殑鏃堕棿闂撮殧鎴栨椂闂寸偣閲嶅鎵ц銆?/p>
相关问答