首页 > 开发 > PHP > 正文

【Lavavel】RedisQueue如何执行队列任务?

2024-05-04 22:02:11
字体:
来源:转载
供稿:网友

利用Redis可以很方便的实现一个任务队列,本篇文章是对队列的执行原理的简单介绍。

队列的基本功能:

1、立即执行;yes

2、延迟执行;yes

3、保证至少执行一次;yes

4、必须执行且最多执行一次;no

用到的数据结构:

list、Sorted sets

延迟执行的机制:

1、先把数据放入SortedSets类型的queues:queue_000:delayed中

2、在执行pop的时候,执行lua脚本,把SortedSets类型的queues:queue_000:delayed 中可以执行的数据rpush到list类型的queues:queue_000中

保证执行成功的机制:

1、把要执行的数据先放入SortedSets类型的queues:queue_000:reserved中

2、在执行pop的时候,执行lua脚本,把SortedSets类型的queues:queue_000:reserved 中可以执行的数据rpush到list类型的queues:queue_000中

3、任务执行成功,从SortedSets类型的queues:queue_000:reserved中执行删除预存的数据

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表