官术网_书友最值得收藏!

2.2 Grain的服務模型

2.2.1 服務接口與實現

在Actor模型中,每個Actor實例通過服務接口對外發布功能,因此在Orleans內實現Grain服務時,開發人員應當首先定義每個Grain類型所提供的服務接口,以此作為服務調用過程中Grain實例與調用方間的服務契約(Service Contract)。

在Orleans內的所有Grain服務接口方法都為異步方法,這是由于Orleans運行時是通過異步消息傳遞的方式實現對Grain實例的服務調用的。因此,Grain服務接口中所有方式的返回值類型都應被聲明為Task(對應同步場景下的無返回值函數)或Task<T> /ValueTask<T>(對應同步場景下返回值類型為T的函數)。以下代碼為一個Grain服務接口的聲明示例:

Grain服務接口的實現邏輯通常被定義在Grain類型內,開發人員可以使用async/await關鍵字對服務流程中異步邏輯的實現進行簡化。例如,以下代碼在EchoTalkerGrain類型中實現了ITalker服務接口的處理邏輯:

主站蜘蛛池模板: 全南县| 钦州市| 澄迈县| 瓮安县| 南城县| 徐闻县| 鄂伦春自治旗| 牡丹江市| 昌乐县| 汕头市| 阿坝| 临江市| 大余县| 翼城县| 瑞金市| 中方县| 宁都县| 嘉荫县| 乌拉特中旗| 阜阳市| 海伦市| 房山区| 麦盖提县| 合水县| 平昌县| 遂川县| 石柱| 平塘县| 石狮市| 光泽县| 繁峙县| 玛多县| 沭阳县| 马关县| 五指山市| 广西| 葫芦岛市| 沾益县| 遂昌县| 麟游县| 吉林省|