在芹菜任务中运行 postgres 真空



>我有芹菜周期性任务,每次运行后都需要运行 postgres VACUUM 查询,否则此任务会占用大量 HDD 空间。

我尝试在任务中最后运行真空,但出现错误:

DatabaseError: VACUUM cannot run inside a transaction block

在调用 VACUUM 之前,我尝试应用@transaction.commit_manually装饰器并执行transaction.commit(),但出现此错误:

TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK

有没有办法在芹菜任务中做真空?还是以某种方式禁用任务事务逻辑?

通常,除非您刚刚进行了大量的批量删除,否则通常不必清空。 只需确保自动真空正在运行并已启用即可。 它将在后台执行此操作,您不必担心。

其次,您可以触发系统命令来运行 vacuumdb 命令行工具。 这将在单独的会话中完成。

相关内容

  • 没有找到相关文章