Hut*_*tch 10 django celery django-celery
我正在尝试设置celery和django,但是没有创建celery_taskmeta表.
我遵循了许多(最近的)教程,将djcelery和djkombu添加到我的installed_apps.将'BROKER_TRANSPORT ="djkombu.transport.DatabaseTransport"'行添加到我的设置等.
我可以很好地运行守护进程,它将执行任务,但它会在最后吐出这个回溯:
==============
2011-08-05 16:21:16,231: ERROR/MainProcess] Task slate.modules.filebrowser.tasks.gen_thumb_task[0afc564b-cc54-4f4c-83f5-6db56fb23b76] raised exception: DatabaseError('no such table: celery_taskmeta',)
Traceback (most recent call last):
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/worker/job.py", line 107, in execute_safe
return self.execute(*args, **kwargs)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/worker/job.py", line 125, in execute
return super(WorkerTaskTrace, self).execute()
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/execute/trace.py", line 79, in execute
retval = self._trace()
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/execute/trace.py", line 93, in _trace
r = handler(trace.retval, trace.exc_type, trace.tb, trace.strtb)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/worker/job.py", line 140, in handle_success
self.task.backend.mark_as_done(self.task_id, retval)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/backends/base.py", line 54, in mark_as_done
return self.store_result(task_id, result, status=states.SUCCESS)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/celery/backends/base.py", line 194, in store_result
return self._store_result(task_id, result, status, traceback, **kwargs)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/djcelery/backends/database.py", line 20, in _store_result
traceback=traceback)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/djcelery/managers.py", line 36, in _inner
return fun(*args, **kwargs)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/djcelery/managers.py", line 154, in store_result
"traceback": traceback})
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/djcelery/managers.py", line 78, in update_or_create
return self.get_query_set().update_or_create(**kwargs)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/djcelery/managers.py", line 62, in update_or_create
obj, created = self.get_or_create(**kwargs)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/query.py", line 378, in get_or_create
return self.get(**lookup), False
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/query.py", line 344, in get
num = len(clone)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/query.py", line 82, in __len__
self._result_cache = list(self.iterator())
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/query.py", line 273, in iterator
for row in compiler.results_iter():
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 680, in results_iter
for rows in self.execute_sql(MULTI):
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 735, in execute_sql
cursor.execute(sql, params)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site- packages/django/db/backends/util.py", line 34, in execute
return self.cursor.execute(sql, params)
File "/Users/erichutchinson/python-env/slate/lib/python2.7/site- packages/django/db/backends/sqlite3/base.py", line 234, in execute
return Database.Cursor.execute(self, query, params)
DatabaseError: no such table: celery_taskmeta
Run Code Online (Sandbox Code Playgroud)
- ============================
那么我怎么能在syncdb中创建这个表呢?
Dic*_*ick 17
这里的问题实际上是南方管理djcelery表.您需要将djcelery迁移到它的新架构.如果您从早期版本升级了djcelery并且已经安装了一组表,则需要先进行虚假迁移:
python manage.py migrate djcelery 0001 --fake
python manage.py migrate djcelery
Run Code Online (Sandbox Code Playgroud)
我以前遇到过同样的问题,但是修好了.
Jor*_*gan 10
我也收到以下错误:
DatabaseError: no such table: djkombu_queue
Run Code Online (Sandbox Code Playgroud)
在进一步研究之后,我相信解决这个问题的正确方法(从这里拉出来)它将以下内容添加到INSTALLED_APPS:
INSTALLED_APPS = ('djcelery.transport', )
Run Code Online (Sandbox Code Playgroud)
添加kombu.transport.django感觉不正确.
小智 5
我收到了类似的错误:
DatabaseError: no such table: djkombu_queue
Run Code Online (Sandbox Code Playgroud)
就我而言,我需要将相关技术的Django应用程序添加到INSTALLED_APPS设置中.就我而言,它是:kombu.transport.django
在那之后,我重新开始syncdb,一切正常.在您的情况下,也许可以在芹菜蛋中添加一些东西到路径中.
| 归档时间: |
|
| 查看次数: |
7960 次 |
| 最近记录: |