我正在使用Django。所以有一个选项CELERY_ALWAYS_EAGER
.当我用CELERY_ALWAYS_EAGER = True
关闭芹菜工人时,一切都很好。
CELERY_ALWAYS_EAGER = False
时出现错误:
TypeError: unsupported operand type(s) for -: 'unicode' and 'unicode'
当我尝试从一个时间戳中扣除另一个时间戳时,这是一个错误。喜欢: new_date - old_date
芹菜怎么了?我怎样才能避免它?
我真的不知道为什么会发生这种情况,在芹菜引擎中。
这是应对方法。我在一个任务中计算了这些时间戳,然后将它们作为参数传递给另一个芹菜任务。所以,当CELERY_ALWAYS_EAGER = True
他们像正常datestamp
一样通过.当CELERY_ALWAYS_EAGER = False
时,他们以unicode
的身份通过。
以下检查解决了该问题:
if isinstance(newest_date, unicode):
old_date = pytz.utc.localize(
datetime.datetime.strptime(old_date, '%Y-%m-%dT%H:%M:%S%fZ'))
new_date = pytz.utc.localize(
datetime.datetime.strptime(new_date, '%Y-%m-%dT%H:%M:%S%fZ'))