幾種訊息佇列,定時觸發和非同步事件處理的方案

2021-10-01 17:54:13 字數 586 閱讀 9054

比較簡單的可以用apscheduler來實現,apscheduler提供多種定時任務的排程。

如果要和flask或者django整合,那可以用對應的flask-apscheduler,django-apscheduler進行任務定時執行。

redies作為nosql型別的儲存系統,同時也是提供rq(redis queue)的python庫來進行佇列job和後台worder處理的。

from redis import redis

from rq import queue

一般用法會匯入這兩個元件,官網有非常完善的例子,主要內容提供乙個極簡的任務處理佇列功能。

celery是乙個分布式的任務排程處理系統,大概結構如圖所示。

celery的架構由三部分組成,訊息中介軟體(message broker),任務執行單元(worker)和任務執行結果儲存(task result store)組成。

訊息中介軟體和結果儲存可用redis,rabbitmq來實現

django celery實現非同步訊息佇列

步驟 1.建立專案 django admin startproject project 3.配置settings.py debug false allowed hosts 127.0.0.1 celery djcelery.setup loader broker url redis celerybe...

Redis 非同步訊息佇列與延時佇列

非同步訊息佇列 說道訊息佇列,你肯定會想到kafka rabbitmq等訊息中介軟體,這些專業的訊息中介軟體提供了很多功能特性,當然他的部署使用維護都是比較麻煩的。如果你對訊息佇列沒那麼高要求,想要輕量級的,使用redis就沒錯啦。redis通過list資料結構來實現訊息佇列.主要使用到如下命令 廢...

同步訊息和非同步訊息

同步訊息和非同步訊息區別 兩者使用場景不一樣,比如說a給b傳送一封電子郵件,a是不需要知道b是否收到就可以了的,把自己的資訊傳達出去,這樣的場景就是非同步訊息。因為在這個過程中a在乎的是把某件事情傳達出去就可以,而不必在乎其他人的狀態,比如張貼告示也是這樣,不需要知道每個人都是否知道這則告示的內容,...