任务放进线程池重启应用导致任务丢失解决

在很多情况下,我们需要使用线程池来处理高并发下的大量任务,线程池不仅能加快任务处理速度,同时也能通过队列缓冲存储一些任务,有利就有弊,如果当线程池中保存了大量任务,此时应用重启了,那么这些任务将会丢失,有可能对业务产生重要故障。

此时我们的解决的方案针对不同情况,如果是接口接收了大量请求,我们通过异步处理,且每个请求的处理时间较长,此时我们需要一种能将任务持久化的队列,这是mq就是一种比较好的方案,我们将任务消息投放到mq,然后消费mq的消息,此时利用的mq对消息的持久化功能,防止任务丢失。

你可能感兴趣的:(架构,系统架构)