异步任务

2018-07-10  本文已影响0人  luckyase

需求:

    同样的任务,启动多次,多个异步任务(比如3个)按照顺序(A,B,C)分别启动,只保留最后一个任务的结果。

    如果能保证只对最后一个启动的任务(C)的回调结果进行处理,那么就能保证数据的准确。

    但是不知道任务数量,如何确定最后一个呢?

解决方案:

    任务启动的时候,生成一个UUID,更新任务全局的UUID,在回调结果中,比较当前任务的UUID和全局的UUID是否一致,一致则执行任务,否则放弃执行。

问题:

    这个方案,只能保证,最后时刻(所有异步任务都执行完成时),最终的结果是最后一个任务的执行结果。并不能保证中间任务(比如B)的回调不会被执行,如果在中间任务被执行了,那么会出现数据不一致,如果恰巧B执行了,C的回调失败了,那么数据也会错误。

上一篇 下一篇

猜你喜欢

热点阅读