問題タブ [saga]

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 に答える
369 参照

redux - redux-saga いくつかの迅速に発射された同じアクションが見逃されました

こんにちは、React コンポーネントの 1 つに onChange コールバックがあります。このコールバックは、次のようなマップ呼び出しを通じてアクションを数回ディスパッチします。

そして、次のような「アイテム」の佐賀があります。

つまり、ITEMS_UPDATE_START アクションがディスパッチされるたびに、新しい updateItemDbCrud がフォークされ、いくつかの API 作業が行われると予想していましたが、一連のディスパッチの最初の処理のみが行われることに気付きました。フォークの使い方が間違っていますか?

ありがとうございました!

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

sql-server - Rebus Saga が IAmInitiatedBy を複数回起動する

Rebus の最新バージョン (0.99.35) と SimpleInjector (3.1.2) を使用しています。最初のサンプル プロジェクトでは、トランスポートと Sagas に SQL Server を使用しています。

Handle(StartTheSagaMessage message)問題は、 を実装している Saga メソッドIAmInitiatedBy<StartTheSagaMessage>が 5 回呼び出され、その理由がわかりません。さらに、このメソッドは、バスによって決して受信されないメッセージを発行します。

構成のコードは次のとおりです。

そして佐賀コード:

完全なサンプルは、ここで入手できるソリューションに基づいています。

私が間違っていることは何ですか?

手伝ってくれてありがとう。

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

unit-testing - Rebus での英雄譚のテスト

このブログ投稿の提案を読んで、サガの動作をテストしようとしています。を使用しようとするとすぐに問題が発生します。名前空間FakeBusにあるはずですが、消えているようです。Rebus.Testing

エラーはどこにありますか? Rebus では最近多くの変更が行われましたが、これはその変更の 1 つですか?

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

unit-testing - rebus と相関問題における Saga ハンドラーの単体テスト

私は Rebus でこの単純な佐賀を持っています:

親切な mookid8000 のおかげで、FakeBus と SagaFixture を使用してサガをテストできます。

最初のテスト メソッドIAmInitiatedByは正しく実行され、エラーはスローされませんが、2 番目のテストは失敗します。fixture.Data要素がfixture.LogEvents含まれておらず、最後の要素としてこのエラーが含まれているため、相関の問題のように見えます

この GUID は何ですか? 単体テストで定義したものとは完全に異なりますか? 何か案は?私がテストしようとしているものは合法ですか (メモリ内バスを使用しているため)?

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

masstransit - MassTransit でスケジューラ アドレスを指定しない Saga スケジューリング

スケジューラ サービス アドレスを直接指定せずに、MassTransit ステート マシン サガでスケジューラを使用しようとしています。

UseMessageSchedulerはバス構成で使用していますがcontext.Schedule、コンシューマーの内部から実行できるため、正常に動作します。

ただし、サガでは機能しません。しようとすると.Schedule、次のエラーが発生します。

要求のタイムアウトが指定されましたが、メッセージ スケジューラが指定されていないか、使用できませんでした

MT コードを確認したところ、次のように表示されました。

では、通常は設定から​​スケジューラのアドレスを取得するはずのブランチが実際にありますが、なぜ機能しないのでしょうか?