异步任务

需求:

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

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

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

解决方案:

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

问题:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容