簡體   English   中英

如何使用基於 class 的方法調用 celery 任務?

[英]How to call celery task with class based method?

我有 class:

class Parser:
    def __init__(self):
        self.OM = Omni() # Creates an class object, which makes auth on the web site, for scrapping
    @app.task
    def foo(self, data):
        self.OM.parse(data)

那么如何使用 foo 方法調用任務呢? 因為當我嘗試這樣做時,我會出錯:缺少參數數據。 我認為這是因為調用該方法獲取數據作為自我參數

prs = Parser()
prs.foo.delay(data)


         

我該如何解決?

在 Celery 3.x 中可以從方法創建任務,但在 Celery 4.0 中被刪除,因為它太有問題了。

我會創建一個小幫手 function:

class Parser:
    def __init__(self):
        self.OM = Omni() # Creates an class object, which makes auth on the web site, for scrapping
    
    def foo(self, data):
        self.OM.parse(data)

@app.task
def foo_task(data)
    prs = Parser()
    parser.foo(data)


foo_task.delay(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM