Erlo

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

2019-04-20 11:01:12 发布   480 浏览  
页面报错/反馈
收藏 点赞
原文:http://www.php.cn/php-weizijiaocheng-417458.html
利用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中执行删除预存的数据

相关教程:redis视频教程

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认