在后台服务器处理业务中,我们为了提高吞吐量,经常使用线程池从消息队列中获取task,然后并行进行运行任务。但是这样可能会带来任务乱序问题。
例如:
1、消息队列中有2个任务消息,消息1与消息2.
2、线程池从消息队列中消费任务
问题:
在某些业务场景中,消息2的结果依赖于消息1的结果,也就是说消息1的业务完成后才能计算消息2。
请问:
在多线程中如何实现这种业务场景?单线程很好的避免这个问题,但是吞吐量不够。
对于有依赖关系的,建议使用消息队列的分区顺序功能https://help.aliyun.com/document_detail/49323.html?spm=a2c4g.11186623.6.566.483a6dc0acHq59
可不可以加个判断,多线程执行成功后。既然是依赖消息1,那么如果消息2先执行完毕,判断消息1的状态。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。