セロリ定期的なタスクの書き方Django-

1.まず、ディレクトリcelery.pyに同じ名前のプロジェクトをビルドします

 

 __future__  インポートabsolute_import
 輸入OS
 からセロリのインポートセロリ
 から日時の輸入はtimedelta
 から昆布のインポートキュー

「セロリ」プログラムのデフォルトのDjango設定モジュールを設定します。
os.environ.setdefault(' DJANGO_SETTINGS_MODULE '' OpsManage.settings ' 
から django.conf インポート設定 アプリ =セロリ(' OpsManage ' ここでは、文字列を使用すると、労働者がする必要はありません意味のWindowsを使用している場合、オブジェクトピクルス。配置セロリ クラス設定: BROKER_URL = ' AMQP://ゲスト:localhostの@ゲスト:5672 // ' CELERY_RESULT_BACKEND = ' Redisの:// localhostを:6379 ' CELERY_ACCEPT_CONTENT = [ ' アプリケーション/ jsonの' ] CELERY_TASK_SERIALIZER = ' jsonの' CELERY_RESULT_SERIALIZER = ' JSON ' CELERY_TASK_RESULT_EXPIRES = 60 * 60 CELERY_TIMEZONE = ' アジア/上海' CELERY_ENABLE_UTC = Trueの CELERY_ANNOTATIONS = { ' * ' { ' RATE_LIMIT '' 500 / S ' }} CELERYBEAT_SCHEDULER = ' djcelery.schedulers.DatabaseScheduler ' app.config_from_object(構成) 各自動でAPPへ見つかったtasks.pyファイル app.autodiscover_tasks() crontabの設定 app.conf.update( CELERYBEAT_SCHEDULE = { すべての機能は、30秒後に行われます ' すべて-30-MIN-追加' :{ ' タスク'' apps.tasks.celery_assets.push_host_by_salt_tasks ' ' スケジュール':はtimedelta(= 30秒#毎日午前12時00分 'スケジュール':crontabの(=分0 = 0時間) }、 }、 ) 昆布:セロリ、メッセージを送受信するための独自のライブラリーは、高レベルのインタフェースプロトコルAMQPを使用する、Python言語習慣に沿って設けられている キュー(一過性、routing_key = 一過性、はdelivery_mode = 1)

settings.py 2.設定セロリ

INSTALLED_APPS = [ 
    ...... 
    ' django_celery_beat ' ' django_celery_results ' 
]

同じ名前のプロジェクトディレクトリ3.断言セロリタスク__init__.pyファイル、それを検出しようとして覚えています

のコード:UTF-8 
から __future__  インポートabsolute_import、unicode_literals 

これは時に必ずアプリが常にインポートされるようになりますDjangoはそうshared_taskは、このアプリを使用することを開始します。
セロリインポートcelery_appとしてアプリ__all__ = [ ' celery_app ' ] インポートpymysql 
pymysql.install_as_MySQLdb()



task.pyリガでタスク機能を実行する4. @

セロリのインポートタスク

#1 タイマータスク
@taskの
 DEFのpush_host_by_salt_tasks():
    「」「balabala」「」
    リターン ここでタイミングタスクです

おすすめ

転載: www.cnblogs.com/lutt/p/12037661.html