2013-04-05 114 views
2

執行我能執行我的任務使用Django的芹菜任務不.delay

scrape_adhoc_reporting([store], [types], inventory) 

這是一個問題,但沒有問題,因爲這個任務可以很容易地需要一個小時。所以我嘗試使任務異步。我嘗試了以下兩種方法:

scrape_adhoc_reporting.apply_async(args=[[store], [types], inventory]) 
    scrape_adhoc_reporting.delay([store], [types], inventory) 

這兩種方法都不起作用。該視圖只是應該重定向,但該任務永遠不會執行。錯誤日誌中沒有錯誤。任何有關我在做什麼錯誤的見解?

編輯:環顧了一下後,我看到有人在討論註冊任務。這是我需要做的事嗎?

+0

註冊任務意味着當芹菜工人啓動時,它應該知道它可以執行的任務列表。我假設你使用django-celery,所以當你的worker啓動時,它會在每個app目錄的tasks.py文件中搜索任務(用@ @ task或者@ @ periodic_task'裝飾的函數)。如果您的任務在其他地方定義,則不會執行 – Igor 2013-04-05 14:19:10

回答

1

如果您希望遠程運行它,則需要一個工作進程在加載該任務時運行,並且配置一個路由系統以獲取調用者和worker之間發送的任務請求。

查看workerstasks的芹菜文檔。

您正在運行的代碼只是在本地執行任務。

3

我跑了同樣的問題,我剛解決它。馬特是正確的:這是由於非工作人員。

我在Windows上使用Django(1.5),Celery(3.0+)和Django-Celery。爲了獲得Celery Beat的工作,我遵循本教程:http://mrtn.me/blog/2012/07/04/django-on-windows-run-celery-as-a-windows-service/與Windows一樣,Beat只能作爲服務啓動。

但是,就你而言,我的任務已啓動但未執行。這來自打包版本django-windows-tools(來自pip)中的一個bug。

我通過從GitHub下載最新版本的django-windows-tools(https://github.com/antoinemartin/django-windows-tools)解決了這個問題。

+0

謝謝。我一直在試圖理解爲什麼Windows服務不起作用。你的評論幫了我很多。 – ratna 2013-10-04 15:51:44