能否以用户 Postgres 运行 cron 作业?

我有一些查询需要每晚运行。我原本以为可以这样做:

cd /var/discourse
./launcher enter app
su postgres
crontab -e
... 添加我的任务并保存 ...

但我遇到了一个错误:

postgres@EN-Discourse-Forums-app:~$ crontab -e
crontab: installing new crontab
crontab: crontabs/postgres: rename: Operation not permitted
crontab: edits left in /tmp/crontab.7kGYwA/crontab

这可行吗?

更“Discourse风格”的做法是创建一个插件,将这些查询作为定时任务来执行。

查看这个示例:

execute 代码块中,你可以执行任何操作,例如这个运行 SQL 的定时任务:

有可能,但这会让其他可能需要更改这些查询行为的人以及我们的服务器无法使用他们能理解的方式。使用 CRON 来运行查询是非常常见的做法。

你读过 How to add a job to cron/anacron when creating Docker container 吗?