问:
很多程序员喜欢用 Redis 的 LIST 数据结构实现任务队列,那么问题来了:比如一个消费者从队列拿到一个任务,在任务处理完成前,消费者本身出现错误崩溃,结果导致任务丢失了。请设计一个尽可能简单的方案,能够尽可能降低任务丢失的风险。
答:
在pop后执行前将此任务写入到数据库中,在执行完成后将此任务从数据库中删除,如果出现崩溃未能正确执行,超过一定时间则另起一个进程执行
很多程序员喜欢用 Redis 的 LIST 数据结构实现任务队列,那么问题来了:比如一个消费者从队列拿到一个任务,在任务处理完成前,消费者本身出现错误崩溃,结果导致任务丢失了。请设计一个尽可能简单的方案,能够尽可能降低任务丢失的风险。
在pop后执行前将此任务写入到数据库中,在执行完成后将此任务从数据库中删除,如果出现崩溃未能正确执行,超过一定时间则另起一个进程执行