我正在开发一个仪表板,它需要运行长时间的后台任务,并最终更新数据库中的模型。我正在使用
Celery
来执行后台操作
这是我的任务函数
tasks.py
@shared_task()
def generate_content_async(system_prompt, user_prompt, section_id):
data = get_data() # long running operation
section = Section.objects.get(id = id)
section.data = data
section.save()
return f"Section with section id: {id} updated"
请注意,我仅更新
data
模型中 Section
的值。代码中的所有内容都工作正常,没有任何问题,后台任务成功完成,但数据库更新不起作用。
出现这样的问题的原因是什么?
蒂亚
我尝试使用
transactions
在提交后执行任何数据库操作,但没有成功(这不应该是问题,因为在我的情况下没有正在进行的事务)。
尝试获取部分实例时出现拼写错误。应该是
section = Section.objects.get(id=section_id)