0
我有芹菜週期性任務,每次運行後需要運行postgres VACUUM查詢,否則這個任務會吃掉很多硬盤空間。在芹菜任務中運行postgres VACUUM
我試圖在年底內運行任務的真空,但得到的錯誤:
DatabaseError: VACUUM cannot run inside a transaction block
我試圖申請@transaction.commit_manually
裝飾,並呼籲真空之前做transaction.commit()
,但得到這個錯誤:
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK
芹菜任務中有沒有辦法做VACUUM?或者以某種方式禁用任務事務邏輯?
如果它吃掉磁盤空間,這可能是因爲它需要它(磁盤頁面分裂爲mvcc等)......當您多次運行類似的事務時是否還在吃掉額外的空間? –
是的,沒有VACUUM。有關將巨大文本字段插入新表的問題。這就是我的任務。 – ramusus