2011-01-12 10 views
0

私はセロリを使い始めています。既に起動しているcelerydプロセスにモジュールを追加することが可能かどうかを知りたいと思います。言い換えれば、代わりに労働者を開始既存のセロリのワーカープロセスに機能を動的に追加しますか?

CELERY_IMPORTS = ("tasks", "additional_module") 

のようにceleryconfig.pyを経由してモジュールを追加することで、私は後のワーカープロセスが起動した後に何とかadditional_moduleを利用できるようにしたいです。

ありがとうございます。

答えて

1

celerydを拡張されたインポートリストで開始し、最終的に(現在のジョブが終了した後で)古いワーカーを正常にシャットダウンすることで、目標を達成できます。

セロリが作業を終えた後にジョブをプッシュしてマークするだけの非同期性のため、このような作業を実際には行なわないでしょう。セルリーワーカーを同じマシン上で実行できるはずです - RabbitMQ(または使用するキューバックエンド)への新しい接続として表示されます。

+0

クライアント内から新しいセロリの作業者を開始するにはどうすればよいですか?私はあなたがクライアントの中から労働者をシャットダウンできると思いますが、どうやって始めますか? – reckoner

+1

私は何を意味するのか明確には述べていませんでした。新しいセロリのデーモン*(つまり、 'celeryd')を始めるべきだったはずです。私は自分の投稿を更新しました。 – rlotun

+0

このアドバイスは、2014年8月にこれを書いているか、より良い方法がありますか?私は数多くのカスタム最適化機能を使用しています(したがって、セロリを使用して多数のコンピュータで実行する数値最適化を行っています)ので、定期的に新しい最適化機能を使用してさまざまな最適化機能の範囲を広げたいと考えています各作業員に、オンザフライで。私はその場でモジュールのリロードについて読んだことがありますが、これはちょっと大変ですね。私は、定期的に、例えばdictに新しい機能を送り、すべての労働者がそれらを得ることを保証することはできますか? –

関連する問題