利用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中文網其他相關文章!