小弟在開發中想要使用使用django+celery的方式實作實作異步任務佇列。用戶上傳檔案到django。django新建model后發送給celery的task進行處理。
task_id = my_task.delay(my_model.id)
在任務中進行如下的操作:
@app.task
def my_task(id):
file = my_model.objects.get(id=id)
但是卻會報出如下的錯誤:
django.db.utils.DatabaseError: DatabaseWrapper objects created in a thread can only be used in that same thread. The object with alias 'default' was created in thread id 2662856759904 and this is thread id 2660784454544.
看意思是說在某執行緒創建的object不能再其他的執行緒使用。不知道是不是我用的方法不對。大家有碰倒相同的問題么?大家都是怎么解決的?
uj5u.com熱心網友回復:
小弟自己搞了一個初步的解決方案,給大家參考,希望各為大師可以幫我找到最終解決方案https://blog.csdn.net/mike198300/article/details/105612288
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57280.html
