確實,脫離任務(wù)主體來講票罐,沒法跟應(yīng)用場景關(guān)聯(lián)起來叉趣。使得它的作用有點像 js 中的 setTimeout,按一定時間間隔執(zhí)行某個方法该押。
這個機制源起于這樣的一個場景:
訂單處理是發(fā)起一個異步任務(wù)只能發(fā)送出疗杉,等著處理過程主動通知,但也可能永遠得不到通知。
對于如1分鐘(指定間隔60秒)未能有結(jié)果的烟具,需要重新進入處理流程梢什。
那應(yīng)用這個機制的過程就是:
取訂單,發(fā)起異步任務(wù)同時加于超時任務(wù)(runner.AddTimeoutTask(訂單號, 60, callback, null);)
如果收到回調(diào)則根據(jù)回調(diào)處理同時 RemoveTimeoutTask朝聋,沒有則會在超時任務(wù)中 callback 中處理嗡午。
一種極簡的異步超時處理機制設(shè)計與實現(xiàn)(C#版)1.引言 當(dāng)執(zhí)行某些動作之后,會期待反饋冀痕。最終要么是得到了結(jié)果荔睹,要么就是超時了。當(dāng)超時發(fā)生時言蛇,可能是期望得到通知僻他,或是希望能自動重試,等等腊尚。于是設(shè)計了一種通用的異步超時的處理...