2010-10-19 48 views
4

我正在使用Django和芹菜與RabbitMQ進行通信。我已經註冊了所有的任務,並將它們放在我的設置文件中的CELERY_IMPORTS元組中。當我運行任務時,出現「未註冊」錯誤消息。芹菜隊列似乎沒有註冊我的任務

# tail -f /var/log/celeryd.log 
    . logfile -> /var/log/[email protected] 
    . events -> OFF 
    . beat -> OFF 
    . tasks -> 
    . apps.contact.tasks.emailContact 
    . apps.declaration.tasks.MailChimpSignup 
    . apps.questions.tasks.emailQuestionTask 
    . queued_storage.tasks.SaveToRemoteTask 
[2010-10-19 17:53:44,958: INFO/PoolWorker-1] child process calling self.run() 
[2010-10-19 17:53:44,971: WARNING/MainProcess] [email protected] has started. 


[2010-10-19 17:54:03,962: ERROR/MainProcess] Unknown task ignored: "Task of kind 'apps.declaration.tasks.MailChimpSignup' is not registered, please make sure it's imported.": {'retries': 0, 'task': 'apps.declaration.tasks.MailChimpSignup', 'args': [], 'eta': None, 'kwargs': {'email': u'[email protected]'}, 'id': '919c6030-70b1-43e6-87f5-907fa0f52c08'} 

繼承人什麼我的任務定義是這樣的:

class MailChimpSignup(Task): 
    def run(self, email, **kwargs): 
     """ 
     This will register the declaration signer on mail chimp. 
     """ 
     logger = self.get_logger(**kwargs) 
     logger.info("Processed mailchimp signup for %s" % email) 
     chimp = chimpy.Connection(settings.MAILCHIMP_API_KEY) 

     try: 
      chimp.list_member_info(settings.MAILCHIMP_LIST_ID, email) 
     except ChimpyException: 
      try: 
       x = chimp.list_subscribe(
         settings.MAILCHIMP_LIST_ID, 
         email, 
         { 
         # 'FNAME': self.first_name, 
         # 'LNAME': self.last_name, 
         }, 
         email_type='HTML', 
         double_optin = False, 
       ) 
      except ChimpyException: 
       return False 
     return True 
tasks.register(MailChimpSignup) 

回答

2

奇怪。它似乎有正確的名字。

您可以嘗試手動爲任務分配名稱嗎?

@task(name="MailChimpSignup") 
def ... 
+0

我用我的任務定義更新了我的原始問題。 – blackrobot 2010-10-22 19:58:11