请问一下,异步执行用线程池还是用 mq

查看 29|回复 2
作者:NoKey   
想到一个情况,请教一下各位大佬。
一个服务,内部有很多异步任务,如何确保异步任务的正确执行。
如果采用线程池,那么为了确保不同类型的任务不会相互抢资源,就会创建很多线程池,每个类型的任务一个线程池,相同类型的任务用一个线程池自己内部竞争。
如果采用 mq ,那么每种类型任务需要一个 topic ,然后视情况看各模块消费后是串行处理还是并行处理。
如果采用 mq ,并且后续是并行处理,那么就是 mq 和线程池的结合。
按照这个思路考虑下去,要给服务越来越大后,最终,是不是会尝试大量的线程池配置或者大量的 topic ,写各种消费者去消费。
请假一下各位大佬,实际项目上,如何解决此类问题呢?谢谢
Ehco1996   
看复杂度和需求
mq 其实就是外存,能保证程序 crash 之后也不丢,放线程池里就是完全相反的
kanepan19   
如果异步任务重要, 用个用建一个任务表,用状态去维护他。
无论是,线程池还是 mq 都行。
我个人觉的,不是很复杂的任务,丢线程池挺方便。 mq 拿到的任务,执行一半,重启了,还是执行失败,当然影响范围比较小。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部