Pythonパラレル分散フレームワークのCelery
1093 ワード
概要:CeleryはPythonに基づいて開発された分散型非同期メッセージキューで、Celeryによってタスクの非同期処理、およびタイミングタスクを簡単に実現できます.
Celeryアーキテクチャの4つの大部分:
broker:メッセージミドルウェアは、タスクキュー自体(よく使われるredis、rabbitmqなど)
backend:結果格納
workor:タスク実行者
task:実行するタスク
適用:
非同期呼び出し:ユーザーが関心を持っていないが、私たちのAPIに存在する操作を非同期呼び出しで最適化することができます(メールを送信したり、アイコンをアップロードしたりします)
タイミングタスク:
定期的に統計ログ、データバックアップ、またはその他の統計タスクを実行します.
使用:前述のCelery+redis併用
補充タイミングタスク:
settingsファイル構成
計画タスク時間:
Celeryアーキテクチャの4つの大部分:
broker:メッセージミドルウェアは、タスクキュー自体(よく使われるredis、rabbitmqなど)
backend:結果格納
workor:タスク実行者
task:実行するタスク
適用:
非同期呼び出し:ユーザーが関心を持っていないが、私たちのAPIに存在する操作を非同期呼び出しで最適化することができます(メールを送信したり、アイコンをアップロードしたりします)
タイミングタスク:
定期的に統計ログ、データバックアップ、またはその他の統計タスクを実行します.
使用:前述のCelery+redis併用
補充タイミングタスク:
settingsファイル構成
settings.py
CELERYBEAT_SCHEDULE = {
'schedule-test': {
'task': 'app .tasks.hello_celery',
'schedule': timedelta(seconds=3),
'args': (2,)
},
}
計画タスク時間:
from celery.schedules import crontab
crontab(minute=u'00', hour=u'11',day_of_week='mon,tue,wed,thu,sun')
:
'every-week-three-and-four-run-get_data_with_param':{
'task': 'APP .tasks.get_data_with_param',
'schedule': crontab(day_of_week="3, 4"),
'args':(4, )
}