- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Django==1.5 上使用 celery==3.0.23 有一些问题,
让我把你们都放在上下文中,我使用 Celery 和 RabbitMQ 作为消息代理来在我的 Django 项目中维护一个异步任务队列,因为它们涉及与远程服务的太多交互,无法在线完成。
这是我的settings.py中的django-celery配置,我还有celery和djcelery在我的 INSTALLED_APPS 元组中
import djcelery
BROKER_URL = 'amqp://guest:guest@localhost:5672'
CELERY_ROUTES = {
'users.tasks.sync_messages': {'queue': 'cron'},
'users.tasks.update_balance': {'queue': 'cron'},
'profiles.tasks.*': {'queue': 'job'}
}
CELERYBEAT_SCHEDULE = {
'sync-messages': {
'task': 'users.tasks.sync_messages',
'schedule': crontab(minute='*/4'),
},
'update-balance': {
'task': 'users.tasks.update_balance',
'schedule': crontab(minute='*/5'),
},
}
(我也有一些预定的工作)
我在 profiles.helpers 中定义了一些方法,我称这些方法为如 celery 文档中所述:
method.delay(arg1, arg2...)
并且由于 UnicodeDecodeError 而拒绝作业
我用 -l DEBUG 选项运行了 celeryd,这是我尝试时的输出排队工作:
[2013-09-13 17:19:56,108: DEBUG/MainProcess] consumer: Ready to accept tasks!
[2013-09-13 17:21:13,970: WARNING/MainProcess] Traceback (most recent call last):
[2013-09-13 17:21:13,970: WARNING/MainProcess] File "/usr/lib/python2.7/logging/__init__.py", line 851, in emit
[2013-09-13 17:21:14,020: WARNING/MainProcess] msg = self.format(record)
[2013-09-13 17:21:14,021: WARNING/MainProcess] File "/usr/lib/python2.7/logging/__init__.py", line 724, in format
[2013-09-13 17:21:14,021: WARNING/MainProcess] return fmt.format(record)
[2013-09-13 17:21:14,021: WARNING/MainProcess] File "/home/israelord/.virtualenvs/ringtu/local/lib/python2.7/site-packages/celery/utils/log.py", line 110, in format
[2013-09-13 17:21:14,041: WARNING/MainProcess] return safe_str(logging.Formatter.format(self, record))
[2013-09-13 17:21:14,041: WARNING/MainProcess] File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
[2013-09-13 17:21:14,041: WARNING/MainProcess] record.message = record.getMessage()
[2013-09-13 17:21:14,041: WARNING/MainProcess] File "/usr/lib/python2.7/logging/__init__.py", line 328, in getMessage
[2013-09-13 17:21:14,042: WARNING/MainProcess] msg = msg % self.args
[2013-09-13 17:21:14,042: WARNING/MainProcess] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 58: ordinal not in range(128)
[2013-09-13 17:21:14,042: WARNING/MainProcess] Logged from file consumer.py, line 589
我知道这里没有太多信息,但我不知道如何调试它
我认为这与 Celery 如何序列化任务有关,但我尝试了几种序列化程序得到了相同的结果,我正在阅读一些博客文章,发现这是 Celery < 3.0 版本上的一个非常常见的问题,并且在 Celery 3.0 上已解决
任何人都可以告诉我这个吗?
非常感谢您花时间阅读和帮助。
最佳答案
通常,将 Django 查询集对象或延迟计算的对象(如 User)传递到 Celery 任务中不是一个好主意,因为它们不能很好地序列化。我建议通过仅传递用户名字符串来简化您发送的内容,然后在 celery 任务中再次查询该用户的数据库。
关于python - celery UnicodeDecodeError 与 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796307/
我有一个文本文件,发布者(美国证券交易委员会)声称该文件以 UTF-8 编码(https://www.sec.gov/files/aqfs.pdf,第 4 节)。我正在使用以下代码处理这些行: def
在 django 界面中添加元素时遇到问题。我有两个定义: # -*- coding: utf-8 -*- class VisitType(models.Model): name=models
我尝试制作一个脚本来使用 Mechanize 发布表单 剧本: # Browser br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.
我收到此错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 4: ordinal not in range
我正在尝试使用 Google 语音 API 在 Python 中制作语音识别器。我一直在使用和改编 here 中的代码(转换为Python3)。我在计算机上使用一个音频文件,该文件已使用在线转换器从
打开一个docker实例(例如docker run -ti ubuntu:16.04),创建Python文件a.py # -*- coding: utf-8 -*- a = 'ö' 和r.py wit
当我将应用程序与Buildozer for Android打包在一起时,我会收到UnicodeDecodeError。 Log2与Buildozer一起附加 build.py 。 作业系统:UBUNT
我在 Ubuntu 终端(编码设置为 utf-8)中运行此代码段两次,一次使用 ./test.py然后用 ./test.py >out.txt : uni = u"\u001A\u0BC3\u1451
我正在尝试使用 Python 中的以下命令序列替换 Word 文件中的子字符串。代码本身工作得很好 - 即使使用完全相同的 Word 文件,但当将其嵌入到更大规模的项目结构中时,它会在确切的位置抛出错
我在 tox 中有以下配置: [tox] envlist = py37 [testenv] passenv = TRAVIS TRAVIS_* setenv = DEFAULT_FROM =
我正在获取 UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 104: ordinal not in range
在执行子字符串匹配时,我收到 UnicodeDecodeError: 'ascii' codec can't Decode byte 0xc3 inposition 8: ordinal not in
我正在使用 Python 和 lxml,但遇到错误 我的代码 >>>import urllib >>>from lxml import html >>>response = urllib.urlope
我是 python 的新手,我正在尝试处理一小部分 Yelp!数据集是 JSON,但我使用 pandas 库和 NLTK 转换为 CSV。 在对数据进行预处理时,我首先尝试删除所有标点符号以及最常见的
我想不出如何一劳永逸地解决这些问题。当我尝试写“è”(我是意大利人)时,我第一次遇到这些问题。经过一些研究,我发现在最开始添加“#coding: utf-8”似乎可以解决问题....直到现在。 我编辑
我的数据存储包含值,我希望我的表单能够更新这些值。我在 jinja2 中使用 wtforms 和谷歌应用引擎。我收到一条我无法理解的错误消息: 'ascii' codec can't decode b
我们遇到了一个问题(描述为 http://wiki.python.org/moin/UnicodeDecodeError)——请阅读第二段“...自相矛盾...”。 具体来说,我们正在尝试将字符串向上
我正在尝试标记一些文档,但我遇到了这个错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 6: ordina
我想在一个文件中存储一个包含多个 numpy 数组的 Python 对象。我找到了 pickle,但在加载存储的对象时总是遇到 UnicodeDecodeError: Traceback (mos
我正在尝试制作一个 python 脚本来查找 USB 闪存驱动器中的重复文件。 我遵循的过程是创建一个文件名列表,散列每个文件,然后创建一个逆向字典。然而,在过程中的某个地方,我得到了一个 Unico
我是一名优秀的程序员,十分优秀!