我们正在尝试在Postgresql中配置定期作业。 要做到这一点,我们已经安装在linux机器上,运行postgres 9.6 ,. citusdata pg_cron项目。
系统信息
Citusdata pg_cron项目
按照pg_cron存储库中的说明,我们在postgresql.conf中设置
下面的配置app
然后,在db_name上,我们创建了EXTENSION pg_cron
shared_preload_libraries = 'pg_cron'
cron.database_name = 'our db_name'
我们安排了第一个postgres工作:
CREATE EXTENSION pg_cron;
因此,创建了jobid 1并在表cron.job中列出。
我们预计在12:45将启动预定作业的命令。
但没有任何反应。
未创建testCron表,我们在任何日志中都没有跟踪。
我们还在/usr/src/pg_cron/include/pathnames.h中定义了LOG_FILE以启用日志记录。
但是,在重新编译项目并重新启动postgres服务之后,我们没有跟踪pg_cron的日志。
有人可以帮助我们吗?
我们如何为pg_cron启用日志来检查调度结果?
提前致谢!
答案 0 :(得分:3)
要从数据库服务器调度作业,我们需要在pg_hba.conf中为运行cron作业的用户启用信任身份验证。 我们还需要运行UPDATE cron.job SET nodename =''通过本地(unix域)套接字使pg_cron连接或在pg_hba.conf中添加所有127.0.0.1/32的主机 允许通过本地TCP连接访问pg_cron后台工作程序。
作为查看是否启用了日志记录的基本健全性检查,我们运行SELECT cron.schedule(' * * * * *',' SELECT 1')将运行SELECT每分钟开始时1,应该出现在常规的postgres日志中。
答案 1 :(得分:0)
假设您完全控制Linux系统,可以在root的crontab中使用它:
su -c "YourqueryHere" postgres
所以你不需要pg_cron,除非你需要能够直接从数据库服务器安排作业。