問題タブ [celerybeat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Celerybeat が期待どおりに動作しない
ボトルを使用してプロジェクトを構築していますが、特定のスケジュールされたアクションを定期的に実行する必要があります。
スケジュールされた作業をプログラムで管理するための最も堅牢で完全なソリューションのように思えたので、rabbitmq + celery を使用することにしました。
rabbitmq と celery の両方を正常にインストールしました。 celeryd -B を使用すると、タスクは正常に完了します。ただし、celerybeatコマンドを使用すると、タスクは「送信」されます(または、出力が表示されます。これは、-lデバッグオプションを使用してcelerydとcelerybeatの両方を実行してより詳細にするためです)が、定期的に「送信」されていますが、そうではありません'実行されます (テスト目的で、タスクは現在のタイムスタンプを 60 秒ごとにファイルに追加する必要があります)。とにかく、同じディレクトリの celeryd -B コマンドが正常に機能するため、他のすべては正常に機能し、予想される間隔でファイルを書き込みます。
何か不足していますか?
$celerybeat -l debug の出力は次のとおりです。
django - run_every を無視するセロリ/昆布
最近展開した昆布/セロリのセットアップです。タスクは正常に実行されますが、run_every 属性を尊重するのではなく、ほぼ連続して実行されているように見えます。おそらくもっと奇妙なことに、この動作は本番環境でのみ発生し、ローカルでは正常に機能します。
私tasks.py
はこのように見えます:
マイsettings.py
インクルード
プラス'djcelery'
と'kombu.transport.django'
インINSTALLED_APPS
。
そして本番環境ではpython manage.py celeryd -v 2 -B -s celery -E -l INFO
、タスクの実行を開始するために実行します。他に何か問題が解決する場合は、Chase Seibert のチュートリアルに従っていました。
python - Celery での Django 定期タスク
定期的なタスクが実行されないという問題が発生しています。バックエンドとして redis を使用しており、タスクを手動で実行できます。これはセロリのデバッグ ログです。
タスクを手動で実行すると、すべてが機能します。タイムゾーンはジャンゴとセロリで同じです
python - celerybeatを構成して実行する方法
私はセロリを始めたばかりで、定期的なタスクを実行しようとしています。
構成済みの*rabbitmq**にceleryconfig.pyが追加されました。
そして、tasks.pyに次のコードを追加しました。
ターミナルで「celerybeat」と入力してcelerybeatを起動すると、次のメッセージが表示されて実行が開始されます。
そしてevery_2_seconds
、ターミナルにメソッドの出力がありません。celerybeatコマンド中に実行するアプリまたはタスクを指定する必要があると想定しています。これを行うにはどうすればよいですか?
タスクを指定し、2秒ごとに定期的なタスクとして行を印刷するにはどうすればよいですか?
ありがとう。
celerybeat - celerybeatは、タイムゾーン設定でもUTCを使用します
django settings.pyに必要な設定があると信じているにもかかわらず、celerybeatがスケジュールにUTC時間を使用している(そしてログを英国時間で出力している?!)ことがわかりました。
運が悪かったので、TIME_ZONE変数を切り替えてみました
使ってます:
ありがとう
python - Celery Beat の設定を動的に変更する
実行中に特定のタスクの設定を変更するように celerybeat に指示する方法はありますか?
これの有用性は、次の例で最もよく説明されています。
30 秒ごとに値をチェックする定期的なタスクがあります。場合によっては、外部トリガー (予測できない) に基づいて、このタスクのポーリング頻度を 10 秒 (数分間) に増やしたいことがあります。
これは管理可能な方法で実行できますか? タスク構成を変更してセロリをリロードできることは知っていますが、それは面倒な方法のようです...
django - Upstart - Django と Celeryd
私は Ubuntu サーバーをセットアップしているので、私の Django プロジェクトは次のように upstart によって開始されます。
ご覧のとおり、最後にセロリも追加しました。しかし、それは開始されていません。私のタスクが完了していないため、開始されていないことは確かです。サーバーのターミナルで次のように起動すると:
manage.py celeryd -l info -B が開始され、タスクが実行されていることがわかります。
Django でどのように起動すればよいですか?
redis - 定期的なタスク スケジューリングの結果を取得する方法
こんにちは、私はセロリが初めてです。私は定期的なタスクのスケジューリングに取り組んでいます。私は次のように設定しましたceleryconfig.py
:
そしてmytask.py
次のように:
私が走っているとき
celery beat -s celerybeat-schedule
、私は得ています
Configuration ->
. broker -> redis://localhost:6379/0
. loader -> celery.loaders.default.Loader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@INFO
. maxinterval -> now (0s)
[2012-08-28 12:27:17,825: INFO/MainProcess] Celerybeat: Starting...
[2012-08-28 12:28:00,041: INFO/MainProcess] Scheduler: Sending due task mytasks.add
[2012-08-28 12:29:00,057: INFO/MainProcess] Scheduler: Sending due task mytasks.add
[2012-08-28 12:30:00,064: INFO/MainProcess] Scheduler: Sending due task mytasks.add
[2012-08-28 12:31:00,097: INFO/MainProcess] Scheduler: Sending due task mytasks.add
今、私は引数を渡したことがわかりません(16,16)
。次に、この関数の答えを得るにはどうすればよいですかadd(x,y)
celery - セロリでいつジョブが開始されるかを知りたい
私は初めてcelery
です。私は次のようにいくつかの構成を持っていceleryconfig.py
ます:
ジョブが 30 秒で定期的に実行されるようにスケジュールしました。今、私はジョブを開始したいのですが、29 aug
これ4:00PM
をどのように設定すればよいですか??