問題タブ [celery]

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.

0 投票する
2 に答える
1103 参照

python - 複数の環境で大規模なタスクをサポートするためにキュー/ワーカー構造をレイアウトする方法は?

Python/Django/Celery ベースの展開ツールの場合、次のセットアップがあります。

  1. 現在、デフォルトの Celery セットアップを使用しています。(「セロリ」と呼ばれる 1 つのキュー + 交換。)
  2. キューの各タスクは、展開操作を表します。
  3. 環境の各タスクは、(非常に) 時間がかかる可能性がある同期フェーズで終了します。

次の仕様を満たす必要があります。

  1. 並行性 : 複数の環境のタスクを同時に実行する必要があります。
  2. ロック:各環境で同時に実行されるタスクは最大で 1 つです (つまり、環境ロック)。
  3. スループットの最適化: 1 つの環境に複数のタスクがある場合、それらの同期フェーズを組み合わせて最適化することができます。そのため、タスクが終了間近になった場合、この環境のキューで待機している新しいタスクがあるかどうかを確認し、ある場合は同期フェーズをスキップする必要があります。

これを実装するための好ましい方法は何ですか?

いくつかの考え:

  • 環境ごとに 1 つずつ、複数のキューを設定する必要があると言えます。また、N 個のセロリ ワーカーがそれぞれ 1 つのキューを排他的に処理する必要があります。(これで仕様 1+2 は解決されます。)
    しかし、複数のセロリ ワーカーが異なるキューを排他的にリッスンするにはどうすればよいでしょうか?
  • 環境のキューで待機しているタスクが他にもあることを知る明確な方法はありますか?
0 投票する
1 に答える
1882 参照

python - Celery の PeriodicTask run() メソッドへの独自のパラメーター

私は小さな Django アプリケーションを書いています。モデル オブジェクトごとに、一定の間隔で実行される定期的なタスクを作成できるはずです。私はこれにCeleryアプリケーションを使用していますが、1つのことを理解できません:

それから私は次のことをしています:

最初の呼び出しは成功しましたが、エラーを返す他の定期的な呼び出し - TypeError: run() は、celeryd サーバーでキーワード以外の引数を 2 つ (1 つ指定) 取ります。独自のパラメーターを PeriodicTask に渡すことはできますrun()か?

0 投票する
1 に答える
599 参照

python - celerydの実行中にエラーが発生しました

私はこの質問(および回答)を投稿しているので、将来誰かがこの問題を抱えている場合は、グーグルで検索できるようになります。

次のようにDjangoでcelerydを実行しようとしている場合:

起動直後に次のエラーが発生する場合があります。

問題を解決するためにどこに行くべきかについての本当の手がかりがない、かなり不可解なエラーメッセージ。今日のようにこのエラーに多くの時間を無駄にしないように、答えについては以下を参照してください:)

0 投票する
1 に答える
363 参照

python - この__import__機能は正しいですか?

、という名前のパッケージがありjiva_tasks、これをcelery経由でインポートしようとしていCELERY_IMPORTSます(celeryconfigの属性を使用します。celeryが使用しているimportステートメントは次のとおりです。

奇妙なことに、この構文を使用すると、モジュールは2回インポートされます。1回はasjiva_tasksで、もう1回はas jiva_tasks.(最後にピリオドがあります)です。さて、セロリ空のリストではなくグローバルで渡される可能性は高いですが、これは私には壊れているようです。間違った引数が与えられたとしても__import__、有効なpythonモジュール名ではないものをインポートするのは奇妙に思えます。

これを修正する方法は渡すglobalsことですが、なぜこの結果が得られるのかを理解したいと思います。これはバグですか、それともどのように機能しているかについて私が理解していないことがあり__import__ますか?

更新:を使用すると、正常に動作しているようimportlibです。

アップデート2:行が実行される直前のsys.meta_pathとは次のとおりです。sys.import_path__import__

異常なことがあるようには思えません。しかし、インポートしているパッケージがsetuptoolsのdevelopコマンドを使用してインストールされていることに気づきました。それは違いを生みますか?

0 投票する
2 に答える
13884 参照

messaging - AMQPとWebsphereMQ

キューイング用にAMQPをサポートするアプリケーションに取り組んでいます。一部のクライアントはWebsphereMQを使用しています。私は、これら2つのプロトコルが機能的にどのように互換性があるかを大まかに疑問に思っています。私はセロリを使用しています。これにより、Websphere MQバックエンドを記述できる限り、下位レベルのものを抽象化できるはずです。私が理解しようとしているのは、これがどれほど難しいかということです。

Websphere MQはAMQPの機能のスーパーセットを提供しますか?どちらかが私の人生を困難にするかもしれない「特徴」を持っていますか?

0 投票する
3 に答える
56783 参照

python - Celery - 現在のタスクのタスク ID を取得する

タスク内からタスクの task_id 値を取得するにはどうすればよいですか? これが私のコードです:

アイデアは、タスクの新しいインスタンスを作成するときにtask_id、タスク オブジェクトから を取得するというものです。次に、タスク ID を使用して、タスクが完了したかどうかを判断します。タスクの完了後にファイルが「クリーンアップ」され、存在する場合と存在しない場合があるため、値でタスクを追跡したくありません。path

上記の例では、どのように値を取得しますcurrent_task_idか?

0 投票する
1 に答える
7747 参照

python - Django Celery の実装 - OSError : [Errno 38] 関数が実装されていません

django-celery をインストールし、ワーカーサーバーを起動しようとしましたが、機能が実装されていないという OSError が表示されます。VPS で CentOS リリース 5.4 (Final) を実行しています。

私は完全にめちゃくちゃですか、これを解決する簡単な方法はありますか?

0 投票する
1 に答える
7419 参照

django - Django-Celeryを本番環境で実行

DjangoWebアプリケーションといくつかのDjango-Pistonサービスを構築しました。ユーザーはWebインターフェースを使用して、WebサービスにPOSTされたデータを送信し、そのWebサービスはDjango-celeryを使用してバックグラウンドタスクを開始します。

manage.pyを使用すると、開発環境ですべてが正常に機能します。今、私はこれを適切なApacheサーバー上の本番環境に移行しようとしています。WebアプリケーションとWebサービスは本番環境では正常に機能しますが、celerydをデーモンとして起動すると深刻な問題が発生します。これらの指示に基づいて:http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon celeryconfig.pyファイルを作成し、 / usr / binディレクトリ(これはcelerydが私のarch linuxサーバー上の場所です)。

ただし、コマンドラインからcelerydを起動しようとすると、次のエラーが発生します。

ここからどこへ行くのかわからない。以下は、この問題に関連する私のsettings.pyセクションです。

0 投票する
2 に答える
5492 参照

python - celery-djangoが設定を見つけることができません

非同期タスクを実行するためにCeleryを使用するDjangoプロジェクトがあります。私はWindowsXPマシンで開発を行っています。

Djangoサーバー(python manage.py runserver 80)の起動は正常に機能しますが、Celery Daemon(python manage.py celeryd start)を起動しようとすると、次のエラーで失敗します。

ImportError:設定をインポートできませんでした'src.settings'(sys.pathにありますか?構文エラーがありますか?):src.settingsという名前のモジュールがありません

sys.pathには「C:\ development \ SpaceCorps \ src」が含まれているため、このモジュールが見つからない理由がわかりません。

デーモンの起動からの完全な出力は次のとおりです。

0 投票する
2 に答える
2195 参照

python - Celery を使用してすべての保留中のタスクを含むダッシュボードを作成するにはどうすればよいですか?

保留中のすべてのタスクを監視できる場所が必要です。

タスクとして登録された関数/クラスについて話しているのではなく、表示できる実際のスケジュールされたジョブ: name、task_id、eta、worker など。

Celery 2.0.2 と djcelery を使用して、ドキュメントに「inspect」を見つけました。私は試した:

しかし、それは永遠にハングアップしますdump = i.scheduled()

それ以外の場合はすべてが機能するため、奇妙です。

Ubuntu 10.04、django 1.0、および virtualenv を使用しています。