Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題
Celery批量異步調(diào)用任務(wù)一直等待結(jié)果
采用celery中g(shù)roup方式進(jìn)行批量異步調(diào)用,且需要等待返回結(jié)果時(shí)(未設(shè)置超時(shí)時(shí)間)
兩種情況會導(dǎo)致任務(wù)一直等待結(jié)果:
1. 如果異步方法對異常未進(jìn)行處理
直接拋出,則會導(dǎo)致group的job一直等待結(jié)果,如下代碼:
@shared_task(bind=True)
def test_task_method(self, number, is_ignore_exception):
try:
logger.info('enter method')
# if number % 10 == 0:
# raise Exception('throw exception')
time.sleep(15)
except Exception:
logger.info(traceback.format_exc())
if not is_ignore_exception:
raise2. celery出現(xiàn)任務(wù)task丟失情況
實(shí)際執(zhí)行任務(wù)與期待任務(wù)數(shù)量不符合,則會一直等待結(jié)果。因?yàn)榭赡懿糠珠_發(fā)者對查看Broker和celery執(zhí)行的情況命令不熟悉,這里推薦安裝Flower監(jiān)控celery,文檔參考Flower文檔。
在執(zhí)行中觀察celery是否掉線,
如下圖:

如果出現(xiàn)掉線,則查看celery日志或者系統(tǒng)日志(/var/log/message)查看是存在進(jìn)程被kill情況,
如下圖:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用PyPDF2庫實(shí)現(xiàn)輕松提取PDF文本
ython中的PyPDF2庫是一個(gè)非常有用的工具,無論您是需要分析PDF文檔中的內(nèi)容還是需要在文檔中搜索特定的信息,PyPDF2都可以幫助您輕松實(shí)現(xiàn)這些任務(wù),下面我們就來學(xué)習(xí)一下如何利用PyPDF2提取PDF文本吧2023-09-09
Python3實(shí)現(xiàn)建造者模式的示例代碼
這篇文章主要介紹了Python3 實(shí)現(xiàn)建造者模式的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
淺談Scrapy網(wǎng)絡(luò)爬蟲框架的工作原理和數(shù)據(jù)采集
在python爬蟲中:requests + selenium 可以解決目前90%的爬蟲需求,難道scrapy 是解決剩下的10%的嗎?顯然不是。scrapy框架是為了讓我們的爬蟲更強(qiáng)大、更高效。接下來我們一起學(xué)習(xí)一下它吧。2019-02-02
python遍歷一個(gè)目錄,輸出所有的文件名的實(shí)例
下面小編就為大家分享一篇python遍歷一個(gè)目錄,輸出所有的文件名的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python執(zhí)行系統(tǒng)命令的五種方式小結(jié)
在日常開發(fā)中,有時(shí)需要在Python腳本中執(zhí)行系統(tǒng)命令,Python有五種方式來執(zhí)行系統(tǒng)命令(推薦使用第五種),本文為大家整理了這五種方法的具體使用,希望對大家有所幫助2024-01-01

