非同期タスクを調整するツールとして SQL Server Service Broker を学習しています。MasterService
と のデータを組み合わせた があるEmployeeInfoService
としPayrollInfoService
ます。リストを取得し、EmployeeIDs
それぞれを会話として両方のサービスに送信します。これら 2 つのサービスの最後には、一度に 2 つを処理するアクティベーション sproc がありますEmployeeIDs
。
いくつかの質問
- 各従業員の応答を my 内の一時テーブルに保存するにはどうすればよい
MasterService
ですか? EmployeeIDs
ステップ 1 で作成した 2 つの一時テーブルからデータを生成できるように、2 つのサービスがすべての処理を完了したことを確認するにはどうすればよいでしょうか?
これまでの私のコードは次のとおりです。
-- Get a whole bunch of EmployeeIDs
DECLARE @EmployeeConversation uniqueidentifier
DECLARE @PayrollConversation uniqueidentifier
BEGIN DIALOG @EmployeeConversation
FROM SERVICE MasterService
TO SERVICE 'EmployeeInfoService';
SEND ON CONVERSATION @EmployeeConversation MESSAGE (EmployeeID1)
SEND ON CONVERSATION @EmployeeConversation MESSAGE (EmployeeID2)
SEND ON CONVERSATION @EmployeeConversation MESSAGE (Employee...);
BEGIN DIALOG @PayrollConversation
FROM SERVICE MasterService
TO SERVICE 'PayrollInfoService'
WITH RELATED_CONVERSATION_GROUP = @EmployeeConversation;
SEND ON CONVERSATION @PayrollConversation MESSAGE (EmployeeID1)
SEND ON CONVERSATION @PayrollConversation MESSAGE (EmployeeID2)
SEND ON CONVERSATION @PayrollConversation MESSAGE (Employee...);
-- Now I need to wait till both conversations are done.
-- How do I handle that?