当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-03-05 15:41:38 浏览: 评论:0 

利用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中执行删除预存的数据

Tags: Lavavel RedisQueue

分享到: