- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想研究celery项目,但是不知道哪里出错了。“tasks.py”文件:
# -*- coding: utf-8 -*-
from celery import Celery
app = Celery('tasks', broker='sqla+sqlite:///celerydb.sqlite')
app.conf.update(
CELERY_RESULT_BACKEND = 'db+sqlite:///results.sqlite',
# CELERY_RESULT_BACKEND = 'redis://localhost/0',
# CELERY_RESULT_BACKEND = 'amqp',
# CELERY_RESULT_BACKEND = 'mongodb://127.0.0.1:27017/',
CELERY_TASK_SERIALIZER = 'json',
CELERY_IGNORE_RESULT = False,
)
@app.task(trail=True)
def add(x, y):
return x + y
@app.task(trail=True)
def mul(x, y):
return x * y
@app.task(trail=True)
def xsum(numbers):
return sum(numbers)
然后我像这样运行 celery 服务:
celery -A tasks worker --loglevel=info
效果很好。然后我使用 ipython 运行流程脚本:
In [127]: result = add.delay(3,5)
In [128]: result.result
这样的错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-128-a030fb181312> in <module>()
----> 1 result.result
/home/xingming/pyvirt/local/lib/python2.7/site-packages/celery/result.pyc in result(self)
350 If the task raised an exception, this will be the exception
351 instance."""
--> 352 return self._get_task_meta()['result']
353 info = result
354
/home/xingming/pyvirt/local/lib/python2.7/site-packages/celery/result.pyc in _get_task_meta(self)
326 def _get_task_meta(self):
327 if self._cache is None:
--> 328 meta = self.backend.get_task_meta(self.id)
329 if meta:
330 state = meta['status']
/home/xingming/pyvirt/local/lib/python2.7/site-packages/celery/backends/base.pyc in get_task_meta(self, task_id, cache)
292 pass
293
--> 294 meta = self._get_task_meta_for(task_id)
295 if cache and meta.get('status') == states.SUCCESS:
296 self._cache[task_id] = meta
AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'
但是 celery 服务运行良好:
[2014-06-04 11:17:31,656: INFO/MainProcess] Received task: tasks.add[11baa65f-4e18-44b1-80e4-9e81626ca42a]
[2014-06-04 11:17:31,658: INFO/MainProcess] Task tasks.add[11baa65f-4e18-44b1-80e4-9e81626ca42a] succeeded in 0.00117350020446s: 8
这有什么问题吗?
感谢您的帮助!
最佳答案
你没有搞错。 Celery docs充分解释一下:默认情况下,存储任务结果的后端未启用,因此您无法使用任何使用它的函数。如果您想这样做,您需要按照文档配置后端。
关于python - celery 与 SQLite : AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24036092/
我收到错误消息“'DisabledBackend' 对象没有属性 '_get_task_meta_for'”../ 这是 django settings.py # celery settings CE
我正在尝试在 WSL 中安装 airflow(分布式模式),我安装了 Airflow 网络服务器、Airflow Scheduler、Airflow Worker、Celery (3.1) 和 Rab
如果超时(如果任务未在给定时间内完成),我正在尝试从 celery 任务中读取元信息。我有 3 个 celery worker 。当我连续对 3 个工作人员执行任务时,我的超时逻辑(从 redis 后
我已经配置了 celery 和后端: cleryapp = Celery( 'tasks_app', brocker='amqp://guest@localhost//', backe
我想研究celery项目,但是不知道哪里出错了。“tasks.py”文件: # -*- coding: utf-8 -*- from celery import Celery app = Celery
我正在运行 First Steps with Celery Tutorial . 我们定义以下任务: from celery import Celery app = Celery('tasks', b
我是一名优秀的程序员,十分优秀!