最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù)

 更新時(shí)間:2021年10月31日 10:42:58   作者:Step_Top  
這篇文章主要介紹了使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在使用 Celery 的時(shí)候發(fā)現(xiàn)有的時(shí)候 Celery 會將同一個(gè)任務(wù)執(zhí)行兩遍,我遇到的情況是相同的任務(wù)在不同的 worker 中被分別執(zhí)行,并且時(shí)間只相差幾毫秒。這問題我一直以為是自己哪里處理的邏輯有問題,后來發(fā)現(xiàn)其他人 也有類似的問題,然后基本上出問題的都是使用 Redis 作為 Broker 的,而我這邊一方面不想將 Redis 替換掉,就只能在 task 執(zhí)行的時(shí)候加分布式鎖了。

不過在 Celery 的 issue 中搜索了一下,有人使用 Redis 實(shí)現(xiàn)了分布式鎖,然后也有人使用了 Celery Once。 大致看了一下 Celery Once ,發(fā)現(xiàn)非常符合現(xiàn)在的情況,就用了下。

Celery Once 也是利用 Redis 加鎖來實(shí)現(xiàn), Celery Once 在 Task 類基礎(chǔ)上實(shí)現(xiàn)了 QueueOnce 類,該類提供了任務(wù)去重的功能,所以在使用時(shí),我們自己實(shí)現(xiàn)的方法需要將 QueueOnce 設(shè)置為 base

@task(base=QueueOnce, once={'graceful': True})

后面的 once 參數(shù)表示,在遇到重復(fù)方法時(shí)的處理方式,默認(rèn) graceful 為 False,那樣 Celery 會拋出 AlreadyQueued 異常,手動設(shè)置為 True,則靜默處理。

另外如果要手動設(shè)置任務(wù)的 key,可以指定 keys 參數(shù)

@celery.task(base=QueueOnce, once={'keys': ['a']})
def slow_add(a, b):
    sleep(30)
    return a + b

總得來說,分為幾步

第一步,安裝

pip install -U celery_once

第二步,增加配置

from celery import Celery
from celery_once import QueueOnce
from time import sleep

celery = Celery('tasks', broker='amqp://guest@localhost//')
celery.conf.ONCE = {
  'backend': 'celery_once.backends.Redis',
  'settings': {
    'url': 'redis://localhost:6379/0',
    'default_timeout': 60 * 60
  }
}

第三步,修改 delay 方法

example.delay(10)
# 修改為
result = example.apply_async(args=(10))

第四步,修改 task 參數(shù)

@celery.task(base=QueueOnce, once={'graceful': True, keys': ['a']})
def slow_add(a, b):
    sleep(30)
    return a + b

參考鏈接 https://github.com/cameronmaske/celery-once

到此這篇關(guān)于使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù)的文章就介紹到這了,更多相關(guān) Celery 重復(fù)執(zhí)行同一個(gè)任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python程序設(shè)計(jì)入門(1)基本語法簡介

    Python程序設(shè)計(jì)入門(1)基本語法簡介

    Python是當(dāng)今日趨流行的一種腳本語言,它比Java更簡單,比php更強(qiáng)大,并且還適用于做桌面應(yīng)用的開發(fā),這篇文章主要介紹了Python基本語法,需要的朋友可以參考下
    2014-06-06
  • 在VSCode中搭建Python開發(fā)環(huán)境并進(jìn)行調(diào)試

    在VSCode中搭建Python開發(fā)環(huán)境并進(jìn)行調(diào)試

    這篇文章介紹了在VSCode中搭建Python開發(fā)環(huán)境并進(jìn)行調(diào)試的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python使用HTTP POST上傳WAV文件的方法

    Python使用HTTP POST上傳WAV文件的方法

    Python是一個(gè)非常流行的編程語言,可以用于開發(fā)不同類型的應(yīng)用程序。其中,上傳文件是一個(gè)非常常見的需求。具體而言,我們探討了使用HTTP POST請求上傳單個(gè)和多個(gè)WAV文件的方法。無論你是需要將音頻文件上傳到云存儲還是服務(wù)器,這些方法都能幫助你上傳文件。
    2023-06-06
  • python加密打包程序詳解

    python加密打包程序詳解

    這篇文章主要介紹了python加密打包程序,還給大家介紹了Python實(shí)現(xiàn)文件簡單加解密的方法,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Tensorflow--取tensorf指定列的操作方式

    Tensorflow--取tensorf指定列的操作方式

    這篇文章主要介紹了Tensorflow--取tensorf指定列的操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python下載的庫包存放路徑

    python下載的庫包存放路徑

    在本篇文章里小編給大家整理的是一篇關(guān)于python下載的庫包存放路徑,需要的朋友們可以參考學(xué)習(xí)下。
    2020-07-07
  • python爬蟲之BeautifulSoup 使用select方法詳解

    python爬蟲之BeautifulSoup 使用select方法詳解

    本篇文章主要介紹了python爬蟲之BeautifulSoup 使用select方法詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 跟老齊學(xué)Python之Python安裝

    跟老齊學(xué)Python之Python安裝

    本文主要講訴了在Linux,Windows,MacOS三大系統(tǒng)中如何安裝Python環(huán)境,非常的實(shí)用,雖然前面絮絮叨叨的說了不少題外話,但都是作者的肺腑之言,還是仔細(xì)看看吧
    2014-09-09
  • Python利用matplotlib繪制折線圖的新手教程

    Python利用matplotlib繪制折線圖的新手教程

    這篇文章主要給大家介紹了關(guān)于Python利用matplotlib繪制折線圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • pip安裝路徑修改的詳細(xì)方法步驟

    pip安裝路徑修改的詳細(xì)方法步驟

    在實(shí)際使用安裝python的pip安裝依賴庫是非常的便捷的,下面這篇文章主要給大家介紹了關(guān)于pip安裝路徑修改的詳細(xì)方法步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評論

漳浦县| 大竹县| 瓦房店市| 道真| 左云县| 宜昌市| 叙永县| 大方县| 新宾| 馆陶县| 海南省| 丹凤县| 通海县| 交城县| 临泉县| 萨迦县| 珠海市| 长垣县| 舞阳县| 琼结县| 宁海县| 金塔县| 临朐县| 彰化市| 渝中区| 灵石县| 齐齐哈尔市| 泸水县| 江阴市| 韩城市| 留坝县| 醴陵市| 织金县| 曲阜市| 六安市| 玛曲县| 香格里拉县| 定日县| 克山县| 堆龙德庆县| 罗江县|