5

テキストをOCRできるプロセスのファームを作成したいと思います。複数のOCRプロセスによって読み取られるメッセージの単一のキューを使用することを考えました。

私はそれを確実にしたいと思います:

  • キュー内の各メッセージは最終的に処理されます
  • 仕事は多かれ少なかれ均等に分配されます
  • 画像は1つのOCRプロセスによってのみ解析されます
  • OCRプロセスは一度に複数のメッセージを取得しません(他の無料のOCRプロセスがメッセージを処理できるようにするため)。

AMQPを使用してそれを行うことは可能ですか?

pythonとrabbitmqを使用する予定です

4

2 に答える 2

5

はい、@nailxxが指摘しているように。AMQPプログラミングモデルは、キューのみがあり、ワーカー間で共有したり、単一のワーカーがプライベートに使用したりできるという点で、JMSとは少し異なります。また、 PubSubのユースケースやJMSでトピックと呼ばれるものを実行するようにRabbitMQを簡単に設定することもできます。RabbitMQ Webサイトの「はじめに」ページにアクセスして、これに関する多くの役立つ情報を見つけてください。

さて、特にあなたのユースケースでは、すでにたくさんのツールが利用可能です。人々がよく使っていて、よくサポートされているのはセロリです。これについてのブログ投稿があります。これはあなたが始めるのに役立つと思います:

ご不明な点がございましたら、メールでお問い合わせいただくか、rabbitmq-discussメーリングリストに投稿してください。

于 2010-02-17T10:50:00.453 に答える
3

はい、それは可能です。私が取り組んでいるリアルタイムMMOゲームのサーバークラスターはこのように動作します。ActiveMQを使用していますが、これはすべてRabbitMQでも可能だと思います。

あなたが言及したすべてのアイテムは、最後のアイテムを除いて、箱から出されます。

  • キュー内の各メッセージは最終的に処理されます-これはメッセージブローカーの主な責任の1つです
  • 仕事は多かれ少なかれ均等に分配されます-これは別のものです:)
  • 画像は1つのOCRプロセスによってのみ解析されます-これには/topicと/queueの区別があります。トピックはブロードキャスト信号のようなもので、キューはタスクです。シナリオには/queueが必要です

最後の1つを希望どおりに機能させるために、コンシューマーはキューにサブスクライブするときにAMQ固有の引数を送信します。

activemq.prefetchSize: 1

ackこの設定により、コンシューマーは、メッセージを受け取った後、AMQに送信するまでメッセージを受け取らないことが保証されます。RabbitMQにも同様のことがあると思います。

于 2010-01-29T10:48:49.047 に答える