我有以下代碼:Django的匹配查詢不芹菜任務對象後存在保存
@task()
def handle_upload(title, temp_file, user_id):
.
.
.
photo.save()
#if i insert here "photo2 = Photo.objects.get(pk=photo.pk)" it works, including the view function
return photo.pk
#view function
def upload_status(request):
task_id = request.POST['task_id']
async_result = AsyncResult(task_id)
photo_id = async_result.get()
if async_result.successful():
photo = Photo.objects.get(pk=photo_id)
我使用一個Ajax請求檢查上傳的文件,但芹菜任務完成,我收到了照片匹配後查詢不存在。照片PK確實存在並被返回。如果我手動查詢數據庫它工作。這是某種數據庫滯後嗎?我該如何解決它? 我正在使用Django 1.4和芹菜3.0
你的transac重刑設置看起來像? – Shaung 2012-07-18 10:34:55
我在默認情況下保留了大部分設置。我已經改變了唯一的事情就是CELERY_RESULT_BACKEND =「AMQP」 CELERY_TASK_RESULT_EXPIRES = 3600 ,因爲它會掛起即使在完成後等待的任務。 – andrei 2012-07-18 11:19:34