码迷,mamicode.com
首页 > 其他好文 > 详细

Lavavel5.5源代码 - RedisQueue是怎么实现

时间:2019-01-29 20:25:08      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:lua   reserve   str   基本   执行   delay   任务   队列   必须   

队列的基本功能:

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

Lavavel5.5源代码 - RedisQueue是怎么实现

标签:lua   reserve   str   基本   执行   delay   任务   队列   必须   

原文地址:https://www.cnblogs.com/vbifan54/p/10335201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!