Objects.get(id = id) работает только случайным образом
Я думаю, что это несколько связано: link. Я создаю запись модели:
def bulk_asset_update(stores, links, img):
def do_update(id):
task = ThreadTask.objects.get(pk = id) ## <--- DOES NOT EXIST SOMETIMES
...
task.is_done = True
task.timestamp_end = timezone.now()
task.save()
task = ThreadTask()
task.name = "update"
task.save()
t = threading.Thread(target = do_update, args = [task.id])
t.setDaemon(True)
t.start()
return {"id": task.id}
Иногда (каждый 5-й раз или около того) строка ThreadTask.get(pk = id) не работает - поэтому я подозреваю, что она еще не записана в базу данных, возможно? Я попробовал заменить строки:
task = ThreadTask()
task.name = "bulk asset update"
task.save()
с:
task = ThreadTask.objects.create(name = "update")
что, похоже, работает лучше. Но могу ли я убедиться, что объект task действительно сохраняется первым, прежде чем продолжить выполнение кода?