問題タブ [kombu]

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 投票する
1 に答える
398 参照

python - pidbox.Mailboxの使用に成功しましたか?

誰かがpidbox.Mailboxを使用しましたか?

私はその例に似た何かをしようとしていますが、そのドキュメントはかなり古くなっています。私はなんとかdjangoトランスポートへのメッセージを公開するものを手に入れることができましたが、そこからメッセージが正常に受信されることはありません。

誰かがこれの使い方を知っていて、うまく電話/キャストする方法の例を教えてくれることを望んでいました。

これが私が持っているものです(ダミーノードは実際には印刷やリストだけでは何もしません):


そして、シンプルなクライアント。

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

python - この昆布エラーの助けが必要

Pythonインタープリターからのコピーアンドペーストはご容赦ください。昆布で遊んでみましたが、コンシューマーを作成できないようです。助けてください、私はここで完全に暗闇の中にいます。

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

python - amqp交換タイプ

私はamqp全体に取り組んでおり、次のシナリオで使用する交換タイプのタイプについて質問があります。

1)メッセージを受信したときに各ワーカーが何かを実行するワーカープールを作成する必要があります。今、私はさまざまな種類のタスクにさまざまな労働者を結び付けたいと思っています。これは、トピック形式で各メッセージのルーティングキーを使用して指定できます。消費者側では、昆布を少しいじってみると、同じキュー名を指定してもルーティングキーが異なると、メッセージを「フィルタリング」できないことに気付きます。たとえば、1つのコンシューマーに「#」があり、別のコンシューマーに「foo。#」がある場合、両方とも同じキュー名を使用します。後者のコンシューマーは、前のコンシューマーのキューでラウンドロビンを実行します。これは予想されますか?同じマシンで両方のコンシューマーを実行しています。

2)そのため、私は各コ​​ンシューマーに固有のキュー名を作成しますが、今回は、各コンシューマーはルーティングキーを使用して要求したものだけを取得します。ただし、これらは別個のキューであるため、複数のコンシューマーでタスクを取得する場合があります。たとえば、コンシューマー1にキー「#」があり、コンシューマー2に「foo。#」がある場合。コンシューマー2がメッセージを受信(および確認)すると、コンシューマー1も同じメッセージを受信します。これは私が望むものではありません。私は1人の消費者だけがメッセージだけを受け取ることを望みます。「タスクマネージャー」を作成せずにこれを実現する方法はありますか?

乾杯、

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

django - django-celery (djcelery) テーブルは何のためのものですか?

syncdb を実行すると、多くのテーブルが次のように作成されていることに気付きました。

  • djcelery_crontabスケジュール
  • ...
  • djcelery_taskstate

django-kombu がトランスポートを提供しているため、実際のキューに関連付けることはできません。タスクを実行しても、これらのテーブルには何も入力されていません。これらのテーブルは何に使用されますか? 監視目的のみ -- 有効にすると?

もしそうなら、AsyncResult() のルックアップを行うと、実際には djcelery の代わりに django-kombu テーブルを介してタスク結果をルックアップしていると思いますか?

ありがとう。

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

django - django と kombu を使用したスト​​リーミング ビュー

昆布には 2 つのキューがあります。1 つは (何かをするために) リクエストを送信するためのもので、もう 1 つは pub/sub を介してそのリクエストの増分ステータスを吐き出すものです。したがって、私のプロセスでは、リクエストキューに公開され、レスポンスキューで消費されます。タスクには時間がかかる場合があるため、バックエンドで何が起こっているかについてユーザーにフィードバックを提供したいと考えています。kombuコールバックを使用すると、たとえば、ユーザーに情報を吐き出すステートメントをconsume追加できるため、すべてコマンド ラインで機能します。logging.info()

ただし、django で同じ機能を提供できるようになりたいと考えています。オブジェクトgeneratorへの入力として関数を作成できることを理解しています。HttpResponse

しかし、昆布キューのメッセージコールバックをジェネレーターに実装してこれを提供する方法を概念化することはできません...何かアイデアはありますか?

可能であれば、データベース層を使用して進行状況/結果を保存する必要はありません。

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

redis - 「キューイング」のチュートリアルとドキュメント?

「キューイング」の概要を説明している記事や参考文献を探しています (ここでは適切な用語を使用していない可能性があります)。Redis、RabbitMQ、Celery、Kombu、およびまだ読んでいない他のコンポーネントの世界と、それらがどのように適合するかについての入門的なスタイルのガイドを期待しています。

私の問題は、Django Web サイトが発行するバックグラウンド タスクをキューに入れる必要があることです。私が読んだすべてのブログや記事では、さまざまな解決策が推奨されています。

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

python - 複数のスレッドでrabbitmqメッセージキューを使用する(Python Kombu)

単一のキューを持つ単一のRabbitMQ交換があります。複数のスレッドを実行し、このキューをできるだけ早く処理するデーモンを作成したいと思います。

「作業」には外部サービスとの通信が含まれるため、各コンシューマー内でかなりの量のブロックが発生します。そのため、すべて同じキューからのメッセージを処理する複数のスレッドが必要です。

これは、プライマリスレッドでキューを消費し、着信した作業を他のスレッドのプールにファームすることで実現できますが、それぞれが独自のスレッドコンテキスト内で複数のコンシューマーを起動する方法はありますか?

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

transactions - 昆布とRabbitmqとのAMQPトランザクション

昆布APIを介したAMQPトランザクションの使用に関するドキュメントが見つからないようです。このページでは、トランザクション状態にメッセージを追加する方法について説明していますが、関連性はないようです。

私はpikaバックエンドがそれらをサポートしていることを知っており、amqplibバックエンド(Imが現在使用している)もサポートしていると確信していますが、これが昆布でどのように公開されているかはまだわかりません。

編集:明確にするために、Imはchannel.commit()、channel.select()、...タイプのメソッドを探しています

0 投票する
7 に答える
24836 参照

amazon-web-services - AmazonSQSを使用したセロリ

セロリに裏打ちされたブローカーとしてAmazonSQS使用したい。セロリが依存している昆布のSQSトランスポート実装があります。ただし、それを使用するための十分なドキュメントがないため、CeleryでSQSを設定する方法が見つかりません。CeleryでSQSを設定することに成功した人はいますか?

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

django - セロリがジャンゴを遅くする

SQLiteを使用したdjango1.3サイトがあります。それはうまくいきます。

最近、django-kombuと一緒にdjango-celeryをインストールしました。私はsupervisordを使用して、次のコマンドでセロリのダメオンを起動しています。

python manage.py celeryd -v 2 -B -s celery -E

celerydを起動するとシステムがクロールすることを除いて、すべてが機能します。topを使用すると、共有サーバー上のCPUの5%から10%を消費する長時間実行のPythonプロセスを作成していることがわかります。

テスト中、セロリのタスクはスケジュールされておらず、実行されていません。