Pythonパラレル分散フレームワークのCelery

1093 ワード

概要:CeleryはPythonに基づいて開発された分散型非同期メッセージキューで、Celeryによってタスクの非同期処理、およびタイミングタスクを簡単に実現できます.
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, )
    }