我的Celery任务有些问题。在我的方法中,我想在后台同步用户的soundcloud音乐库
@task(name="synchronize_library")
def synchronize_library(user_id):
from api.models import User
logger.info("Enter in function")
user = User.objects.get(pk=user_id)
attr = getattr(user, "has_soundcloud_account")
logger.info(callable(attr))
if user.has_soundcloud_account():
logger.info("User has account")
# Do some stuff
else:
logger.info("User has not account")
# Do some stuff
当我在同步上下文中调用此方法时,如:
synchronize_library(1)
一切正常,所以这个方法没有错误,但如果我打电话:
synchronize_library.delay(1)
这是我在芹菜记录器中看到的:
[2016-10-25 10:02:44,078: INFO/MainProcess] Received task: synchronize_library[3e8e8a67-c896-4d3e-96fe-0959abed749d]
[2016-10-25 10:02:44,081: INFO/Worker-1] synchronize_library[3e8e8a67-c896-4d3e-96fe-0959abed749d]: Enter in function
[2016-10-25 10:02:44,744: INFO/Worker-1] synchronize_library[3e8e8a67-c896-4d3e-96fe-0959abed749d]: True
所以我有一个方法has_soundcloud_account
,但是当我决定调用这个函数时,这个过程似乎就停止了。
经过几次测试后,每次我尝试调用模型的方法时都会出现此行为。
知道发生了什么事吗?
编辑:这是我的方法代码has_soundcloud_account()
:
def has_soundcloud_account(self):
return self.settings.soundcloud_access_token is not None