0

我现在开始使用 PostgreSQL,我想知道我是否可以安排由 db 完成的任务/工作(在 SQL 中)而不必使用 pgAgent。

我正在开发一个管理员需要安排促销活动的系统。例如,从第 X 天到第 Y 天,有一个 Z 促销活动。这必须在系统界面 (UI) 中,在将命令发送到数据库的页面上完成。我只需要在适当的时候执行一条 SQL 命令。


我在互联网上搜索过,我发现的只是关于 pgAgent 或如何配置它。我不想要这个。据我所见,pgAgent 只能通过 pgAdmin 界面工作,系统管理员无法对 pgAdmin 有所了解......或者不是(我是 PostgreSQL 新手)......?:/

在 pgAdmin 中,创建新作业时,我还单击了帮助按钮,但除了通过 pgAdmin 界面设置所有内容外,没有太多讨论。

有什么办法可以做到这一点?有替代品吗?

感谢您的关注。

4

1 回答 1

0

PgAgent 不仅仅通过 PgAdmin 工作,而是 PgAdmin 是唯一(当前)与 PgAgent 表交互的 GUI。PgAgent 是一种专门与自己的表集交互的服务,可以由任何软件修改和报告,而不仅仅是 PgAdmin。PgAdmin 非常有用,因为它实现了多步作业,并且结果存储在数据库中,可以查询或制作自定义报告。

有许多替代方案,从开发您自己的类似 PgAgent 的工具,到在 Linux/Unix/Cygwin 中使用 cron 或在 Windows 中使用计划任务。

例如,在Linux中,可以在cron中通过在/etc/cron.daily/like中添加批处理文件来实现每日表导出

sudo -i -u postgres psql -c "copy foo.bar to '/var/lib/dbexports/foo-bar.csv' with csv header" foo_db

或在文件中/etc/cron.d/专门在星期一 5:30 导出该文件,例如

30 5 * * 1 postgres psql -c "copy foo.bar to '/var/lib/dbexports/foo-bar.csv' with csv header" foo_db

或任何用户的crontab.

于 2016-05-10T05:56:29.860 回答