6

特定の期間が経過した後 (つまり、実行の最小日時に達した後) にのみ、処理するメッセージをキューに入れたい、および/またはメッセージの処理時に、その実行を後の時点に延期したい間に合います (いくつかの前提条件チェックが満たされていないとします)。

たとえば、最初のイベントの時間から 1 時間以内に実行する必要があるプロセスを定義するイベントが発生します。

https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-Redisを使用してこれを調整する組み込み/推奨モデルはありますか?

4

2 に答える 2

2

私はおそらくこれを2段階のアプローチで構築します。

  1. タスクをキュー システムにキューに入れます。これにより、タスクは永続ストア (SQL Server、MongoDB、RavenDB) に処理されます。

  2. 「キューに入れられた」タスクをポーリングして、いつキューに再挿入する必要があるかを調べるサービスを用意します。

おそらくこれらの仕事を失いたくないので、おそらく最も安全な方法です。

Redis の代わりに RabbitMQ を使用する場合、デッド レター キューを使用して同じ動作を得ることができます。デッド レター キューは、基本的に期限切れメッセージのキャッチャーです。

したがって、メッセージを処理するつもりがなくキューにプッシュすると、メッセージには分単位の特定の有効期限があります。それらが期限切れになると、それらはあなたが処理するキューにポップオーバーします。後でキューに入れるための非常に巧妙な方法。

于 2013-08-28T23:32:00.797 に答える
0

いつでもhttps://github.com/dominionenterprises/mongo-queue-csharpまたはhttps://github.com/dominionenterprises/mongo-queue-phpまたはhttps://github.com/gaillard/mongo-queue-を使用できます。遅延メッセージやその他の珍しい機能を提供するJava 。

于 2013-09-27T16:09:04.440 に答える