确实,脱离任务主体来讲,没法跟应用场景关联起来。使得它的作用有点像 js 中的 setTimeout,按一定时间间隔执行某个方法。
这个机制源起于这样的一个场景:
订单处理是发起一个异步任务只能发送出,等着处理过程主动通知,但也可能永远得不到通知。
对于如1分钟(指定间隔60秒)未能有结果的,需要重新进入处理流程。
那应用这个机制的过程就是:
取订单,发起异步任务同时加于超时任务(runner.AddTimeoutTask(订单号, 60, callback, null);)
如果收到回调则根据回调处理同时 RemoveTimeoutTask,没有则会在超时任务中 callback 中处理。
一种极简的异步超时处理机制设计与实现(C#版)1.引言 当执行某些动作之后,会期待反馈。最终要么是得到了结果,要么就是超时了。当超时发生时,可能是期望得到通知,或是希望能自动重试,等等。于是设计了一种通用的异步超时的处理...