Mar*_*llo 5 postgresql cron scheduled-tasks
我们正在尝试在Postgresql中配置定期作业。为此,我们已经在运行postgres 9.6的linux机器上安装了citusdata pg_cron项目。
系统信息
Citusdata pg_cron项目
按照pg_cron仓库中的说明,我们在postgresql.conf中设置以下配置
shared_preload_libraries = 'pg_cron'
cron.database_name = 'our db_name'
Run Code Online (Sandbox Code Playgroud)
然后,在db_name上,我们创建了EXTENSION pg_cron
CREATE EXTENSION pg_cron;
Run Code Online (Sandbox Code Playgroud)
我们安排了我们的第一份postgres工作:
SELECT cron.schedule('45 12 * * *', $$CREATE TABLE testCron AS Select 'Test Cron' as Cron$$);
Run Code Online (Sandbox Code Playgroud)
因此,将创建Jobid 1并在表cron.job中列出。
我们预计将在12:45启动计划作业的命令。
但是什么也没发生。
未创建testCron表,并且在任何日志中都没有跟踪。
我们还在/usr/src/pg_cron/include/pathnames.h中定义了LOG_FILE以启用日志记录。
但是,在重新编译项目并重新启动postgres服务之后,我们没有跟踪pg_cron的日志。
有人可以帮助我们吗?
如何启用pg_cron的日志来检查调度结果?
提前致谢!
要从数据库服务器安排作业,我们需要在 pg_hba.conf 中为运行 cron 作业的用户启用信任身份验证。我们还需要运行 UPDATE cron.job SET nodename = '' 以使 pg_cron 通过本地(unix 域)套接字连接,或者在 pg_hba.conf 中添加主机全部 127.0.0.1/32 以允许访问 pg_cron 后台工作人员通过本地 TCP 连接。
作为检查是否启用日志记录的基本健全性检查,我们运行 SELECT cron.schedule('* * * * *', 'SELECT 1') ,它将在每分钟开始时运行 SELECT 1 并且应该显示在常规中postgres 日志。
| 归档时间: |
|
| 查看次数: |
4542 次 |
| 最近记录: |