You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重新激活PostgreSQL的pg_cron调度器会话?

重新启用pg_cron定时任务调度器

你终止的pg_cron scheduler会话是pg_cron扩展的核心调度进程,负责管理所有定时任务的触发与运行状态更新。终止该进程后定时任务会停止,可通过以下步骤恢复:

1. 确认调度器状态

先查询当前是否还有pg_cron调度进程在运行:

SELECT pid, application_name, query FROM pg_stat_activity WHERE application_name = 'pg_cron scheduler';

若返回空结果,说明调度器已停止。

2. 重启pg_cron调度器

使用pg_cron内置的重启函数,无需重启整个PostgreSQL服务:

SELECT cron.restart_scheduler();

执行后再次运行第一步的查询,若能看到pg_cron scheduler会话,说明调度器已恢复,定时任务会按原有配置重新触发。

3. (可选)修复根源问题

之前的调度会话卡住,大概率是cron.job_run_details表的更新因数据库中断出现异常,建议:

  • 清理该表的历史运行记录,避免数据量过大导致更新缓慢:
    DELETE FROM cron.job_run_details WHERE end_time < NOW() - INTERVAL '30 days';
    
  • 添加定时清理任务,自动维护该表:
    SELECT cron.schedule('daily-clean-job-run-details', '0 0 * * *', $$DELETE FROM cron.job_run_details WHERE end_time < NOW() - INTERVAL '30 days'$$);
    

内容的提问来源于stack exchange,提问作者Abdullah Ergin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:45:55