3

私が始めるのを手伝ってください

私は探しているものが見つからずに、穴の週末に私のお尻をサーフィンしてきました。フランス語でごめんなさい。

これは、メッセージ キューに移動しようとしているプロセスです

  • 毎晩、約 45,000 の PDF ファイルが ftp サーバーに到着しています。
  • ファイルごとに、ms sql サーバーのキュー テーブルにレコードが作成されます。
  • サービスがキューを読み取り、ディスク上のファイルを処理しています。

これは、トランザクションとエラー処理を備えたパブ/サブが欲しいものです

  • ファイル ウォッチャーは、データベースではなく、トランザクション内のキューに書き込みます。これは私が推測するより速いです。
  • 次に、新しいファイルが到着したときにデータベースをポーリングする必要がないように、pdf- キューにサブスクライブしたいと考えています。

いくつかの質問

  • トランザクションでキューに発行するにはどうすればよいですか?
  • メッセージの処理中にエラーが発生した場合、キューからメッセージを取得して中止する方法を教えてください。
  • キュー接続を開閉する最良の方法は何ですか? 軽量のセッション オブジェクトはありますか?

はい、単純なパブ/サブの例があることは知っています:-)しかし、すべてを接着することはできません

どんな助けでも大歓迎です。

4

1 に答える 1

4

トランザクションでキューに発行するにはどうすればよいですか?

キューがトランザクション キューである場合、バスを構成するときに、msmq://machine/queue_name?tx=trueMassTransit がトランザクション キューであることを認識できるようにするために使用します。これは、関連するすべてのマシンが DTC に登録できる必要があることを意味します。これは、セットアップが簡単な場合とそうでない場合があります。これは、MSMQ の使用を前提としています。分散トランザクションに登録する必要がない限り、RabbitMQ を使用することをお勧めします。

メッセージの処理中にエラーが発生した場合、キューからメッセージを取得して中止する方法を教えてください。

MassTransit は、エラーがキャッチされた場合、MSMQ トランザクション キューで自動再試行 (5x?) をサポートします。エラーをキャッチして、RetryLater()それをキューに戻すこともできます。

キュー接続を開閉する最良の方法は何ですか? 軽量のセッション オブジェクトはありますか?

MassTransit を使用している場合は、MT がすべての接続オブジェクトを処理します。キューへの接続を開閉する必要はありません。

実際、Bus.Instance.Publish(new FileArrivedMessage(filename))ファイル リスナー サービスに対して実行できます。コンシューマー側では、Consumes<FileArrivedMessage>.All実装を登録するだけです。それぞれ独自のキューが必要ですが、非常に簡単に通信できるはずです。

MTメーリングリストからも、いつでもより多くのヘルプを得ることができます. https://groups.google.com/forum/#!forum/masstransit-discuss

于 2012-02-27T16:06:55.437 に答える