訓練
單向要求
粒紋會執行非同步要求執行,要求所有粒紋介面方法傳回非同步型別,例如 Task。 等候從粒紋呼叫傳回的工作完成,會通知呼叫端要求已完成,使其能夠處理任何例外狀況或接收傳回值。 Orleans 也支援單向要求,讓呼叫端能夠在不預期例外狀況或完成訊號的情況下通知事件的相關粒紋。
單向要求會立即返回呼叫端,而不會發出失敗或完成訊號。 單向要求甚至不保證被呼叫者會收到要求。 單向要求的主要優點是可節省將回應傳回給呼叫端的相關傳訊成本,因而在某些特殊情況下改善效能。 單向要求是進階效能功能,應謹慎使用,且只有在開發人員判斷單向要求有效用時才使用。 建議您優先使用一般雙向要求,這類要求會在完成時發出訊號,以及將錯誤傳回給呼叫端。
使用 OneWayAttribute 來標記粒紋介面方法,可以提出要求,如下所示:
C#
public interface IOneWayGrain : IGrainWithGuidKey
{
[OneWay]
Task Notify(MyData data);
}
單向要求必須傳回 Task 或 ValueTask,且不得傳回這些型別的泛型變體 (Task<TResult> 和 ValueTask<TResult>)。