【问题标题】:Celery with Django - AttributeError: 'AsyncResult' object has no attribute 'replace'Celery with Django - AttributeError: 'AsyncResult' 对象没有属性 'replace'
【发布时间】:2015-05-07 18:59:58
【问题描述】:

我编写了一个 celery 任务,当我单击网页上的按钮时,它会在我的数据库中设置一些值。一切都很好。现在我想编写一个更复杂的任务(disambiguation_task),它会向我的 Django 视图(1.6.5)返回一个字符串。代码是:

task_id = disambiguation_task.apply_async([json.dumps(json_request)])
async_result = AsyncResult(id=task_id,app=disambiguation_task)

只要我尝试获取结果 (async_result.get()),就会产生错误:

AsyncResult' object has no attribute 'replace'

带有以下回溯:

File "/home/patrick/django/entite-tracker-master/entitetracker/docentites/views.py" in get
  466.             result = async_result.get()
File "/usr/local/lib/python2.7/dist-packages/celery/result.py" in get
  169.             no_ack=no_ack,
File "/usr/local/lib/python2.7/dist-packages/celery/backends/amqp.py" in wait_for
  155.                                     on_interval=on_interval)
File "/usr/local/lib/python2.7/dist-packages/celery/backends/amqp.py" in consume
  225.             binding = self._create_binding(task_id)
File "/usr/local/lib/python2.7/dist-packages/celery/backends/amqp.py" in _create_binding
  99.         name = self.rkey(task_id)
File "/usr/local/lib/python2.7/dist-packages/celery/backends/amqp.py" in rkey
  111.         return task_id.replace('-', '')

Exception Type: AttributeError at /docentites/nodoc_desamb/news20150305NY501131/
Exception Value: 'AsyncResult' object has no attribute 'replace' 

如果我尝试打印 async_result.state,也会出现同样的错误。 有人可以帮我解决这个错误吗? 问候, 帕特里克

【问题讨论】:

    标签: python django celery


    【解决方案1】:

    disambiguation_task.apply_async([json.dumps(json_request)]) 返回 AsyncResult 对象,而不是任务 ID。很简单:

    task_result = disambiguation_task.apply_async([json.dumps(json_request)])
    
    # if you need to use the task_id somewhere else
    async_result = AsyncResult(id=task_result.id, app=disambiguation_task)
    

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 2014-09-02
      • 2019-09-12
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2018-06-14
      • 2021-05-29
      相关资源
      最近更新 更多