如何创建发送电子邮件的触发器

xwbd5t1u  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(379)

我正在尝试在sql中创建一个触发器,将电子邮件发送到特定的地址。大纲是:
我创造了一个 select 如果余额低,则返回一个警报列,指示1;如果余额不低,则返回0。
我需要创建一个 trigger 如果警报列为1,它会发送一封电子邮件。
这个 select 以及 trigger 需要每周执行一次。
实现这一目标的最佳方法是什么?任何指导方针都会有帮助。我用的是火鸟数据库。

z9ju0rcb

z9ju0rcb1#

虽然数据库引擎可能会启动电子邮件发送,但它不应该自行发送。只应在数据库服务器中执行一些简短(快速)且无错误的操作。
应该有另一个应用程序/服务/守护进程在运行,它应该基于sql领域中准备的数据来处理电子邮件。问题是何时应该触发此发件人应用程序。
与数据库无关的方法是按预定的时间间隔轮询数据库,这是rajivsah提到的传统上昵称为“cron”操作的方法。每分钟一次,每秒钟一次,每小时一次——由你选择。
火鸟专用的方法 POST_EVENT <string constant> 命令。它可以用来代替基于时间的轮询,也可以与。
以下是示例:

CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
  POST_EVENT 'new_order';
END

https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-psql-coding.html#fblangref25-psql后事件
您的程序如何订阅这些事件将取决于编程语言和firebird访问库。据我所知,php可能不太适合这里,因为它更适合通过守护进程的请求来运行短脚本,而不是作为一个持续运行的守护进程本身。尽管phpMaven们也许可以做到这两个方面。我也不知道php是否支持firebird事件,它似乎不是脚本语言的优先事项。
你可以通过谷歌搜索了解更多关于事件的信息 Firebird POST_EVENT ,在许多链接中,例如:
是否可以对firebird事件使用参数:post\u event'event\u name'+string args?
https://mikejustin.wordpress.com/2012/11/06/firebird-database-events-and-message-oriented-middleware/
https://www.firebirdsql.org/file/documentation/papers_presentations/power_firebird_events.pdf

odopli94

odopli942#

您可以在正在使用的堆栈中实现cron,并定期检查列,如果满足条件,则发送电子邮件。

相关问题