欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django?celery的替代品Dramatiq使用特性詳解

 更新時間:2023年06月21日 11:04:35   作者:alue  
這篇文章主要為大家介紹了Django?celery的替代品Dramatiq使用特性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Django 框架消息隊列 celery

Django 框架需要一個消息隊列來支持分布式任務(wù)處理,大部分人會選擇 celery。但 celery 不支持 windows。

之前,用過funboost,功能強(qiáng)大,但是其代碼充斥著拼寫錯誤,讓人難以忍受。

今天看了 Dramatiq, 發(fā)現(xiàn)完全滿足項目需求。于是上手嘗試了一下。

celery 特性

  • 如果用了普羅米修斯中間件,則可以通過 http://127.0.0.1:9191/ ,查看workers狀態(tài)。(在windows上試了,響應(yīng)不穩(wěn)定)
  • 代碼變動后,可向主進(jìn)程發(fā)送 SIGHUP 信號,從而讓 workers 更新狀態(tài)。(但windows下,沒有有向進(jìn)程發(fā)送信號的便捷手段)
$ kill -s HUP 13047
  • 可以加入 --watch 參數(shù),實現(xiàn) hot-reload, 但生產(chǎn)環(huán)境不推薦。
  • max_retries:設(shè)定最大重試次數(shù)。
  • retry_when:設(shè)定重試條件。
  • max_age :任務(wù)壽命毫秒。

當(dāng)消息超過最大重試次數(shù)或者在隊列里時長超過壽命,則會進(jìn)入死信區(qū),在這里最多保留 7 天,然后被丟棄。

  • time_limit:執(zhí)行時長上限(毫秒),默認(rèn)為 10 分鐘。超時,則會報出 TimeLimitExceeded 異常。
  • priority : 任務(wù)優(yōu)先級, 默認(rèn)為 0, 越小優(yōu)先級越高。
  • send_with_options(): 提供任務(wù)調(diào)度能力
  • 方便與Django框架結(jié)合,在admin中能夠看到任務(wù)執(zhí)行歷史。

Actors

  • Actor 的并行

你的 actor 會跟其它 actors 并發(fā)執(zhí)行,注意操作相同資源時,可能出現(xiàn)的競爭關(guān)系。

  • 簡單消息參數(shù)

給 actor 傳遞的消息應(yīng)該是能被 json 序列化的數(shù)據(jù),例如 bool, int, float, bytes, string, list and dict.

  • 冪等性

受網(wǎng)絡(luò)、硬件、電源等因素影響,一個 actor 可能會反復(fù)接收到相同消息,所以你要保證多次執(zhí)行 actor 的安全性。

Messages 消息

brokers 接收到消息后,會持久化到硬盤。broker 重啟后,會重新激活消息。

消息處理結(jié)果,可以通過 Results 中間件,返回 Redis 或者 Memcached 中。

優(yōu)雅的處理中斷

import dramatiq
from dramatiq.middleware import Interrupt
@dramatiq.actor(max_retries=3, notify_shutdown=True)
def long_running_task():
    try:
        setup()
        do_work()
    except Shutdown:
        cleanup()
        raise

定時任務(wù)

可以跟apscheduler結(jié)合,實現(xiàn)定時執(zhí)行任務(wù)的功能。

以上就是Django celery的替代品Dramatiq使用特性詳解的詳細(xì)內(nèi)容,更多關(guān)于Django celery替代品Dramatiq的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用setuptools打包python程序的方法步驟

    利用setuptools打包python程序的方法步驟

    這篇文章主要介紹了利用setuptools打包python程序的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Selenium定位元素的方法小結(jié)及語法詳解

    Selenium定位元素的方法小結(jié)及語法詳解

    Selenium是一種用于自動化網(wǎng)頁操作的工具,通過不同定位策略可以精準(zhǔn)定位網(wǎng)頁元素,本文介紹了8種定位方法,并詳細(xì)說明了每種方法的語法、使用場景及實際操作中的注意事項,需要的朋友可以參考下
    2025-02-02
  • Odoo中如何生成唯一不重復(fù)的序列號詳解

    Odoo中如何生成唯一不重復(fù)的序列號詳解

    這篇文章主要給大家介紹了關(guān)于Odoo中如何生成唯一不重復(fù)的序列號的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • PyTorch使用cpu加載模型運(yùn)算方式

    PyTorch使用cpu加載模型運(yùn)算方式

    今天小編就為大家分享一篇PyTorch使用cpu加載模型運(yùn)算方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 使用Python操作Excel中圖片的基礎(chǔ)示例(插入、替換、提取、刪除)

    使用Python操作Excel中圖片的基礎(chǔ)示例(插入、替換、提取、刪除)

    Excel是主要用于處理表格和數(shù)據(jù)的工具,我們也能在其中插入、編輯或管理圖片,為工作表增添視覺效果,提升報告的吸引力,本文將詳細(xì)介紹如何使用Python操作Excel中的圖片,文中有詳細(xì)代碼示例供大家參考,需要的朋友可以參考下
    2024-07-07
  • python實現(xiàn)隱馬爾科夫模型HMM

    python實現(xiàn)隱馬爾科夫模型HMM

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)隱馬爾科夫模型HMM,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 一文了解Python?流程控制

    一文了解Python?流程控制

    這篇文章主要介紹了一文了解Python?流程控制,Python?中有while和for兩種循環(huán)機(jī)制,其中while循環(huán)是條件循環(huán),文章通過展開循環(huán)內(nèi)容展開控制流程詳情,需要的小伙伴可以參考一下
    2022-05-05
  • 教你用Python創(chuàng)建微信聊天機(jī)器人

    教你用Python創(chuàng)建微信聊天機(jī)器人

    這篇文章主要手把手教你用Python創(chuàng)建微信聊天機(jī)器人,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • pygame.display.flip()和pygame.display.update()的區(qū)別及說明

    pygame.display.flip()和pygame.display.update()的區(qū)別及說明

    這篇文章主要介紹了pygame.display.flip()和pygame.display.update()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • ?Python?中?logging?模塊使用詳情

    ?Python?中?logging?模塊使用詳情

    這篇文章主要介紹了?Python?中?logging?模塊使用,在我們寫程序時,可以借助?logging?模塊的輸出信息來調(diào)試代碼,下文章關(guān)于?logging?模塊的使用相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03

最新評論