首頁 >後端開發 >php教程 >【Lavavel】RedisQueue如何執行佇列任務?

【Lavavel】RedisQueue如何執行佇列任務?

little bottle
little bottle轉載
2019-04-20 09:48:162672瀏覽

利用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:reserved 中可以執行的資料rpush到list類型的queues:queue_000中
      3、任務執行成功,從SortedSets類型的queues:queue_000:reserved執行刪除預存的資料

相關教學:redis影片教學

以上是【Lavavel】RedisQueue如何執行佇列任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除