【问题标题】:MySql Trigger for notification用于通知的 MySql 触发器
【发布时间】:2020-06-06 01:02:09
【问题描述】:

在 MySql 数据库的表中,我有一个布尔列,其中包含“是”和“否”用于预约确认。一旦预约得到“是”,就会通过 AWS Lambda 调用发送通知。 我想在约会前 12 小时发送通知。在 My Sql 中使用触发器或存储过程或任何其他方式的最佳方法是什么?

【问题讨论】:

  • 规范的方法可能是每小时安排一个作业并同时运行一组通知。您还可以使用事件,专门设置恰好在 12 小时前的事件。也就是说,我不知道 12 小时是一个好的时间范围。如果约会是在下午 3:00,您真的要在凌晨 3:00 向某人发送通知吗?
  • 正确,凌晨 3:00 发送通知是没有用的。我想最好是每 12 小时安排一次工作,或者在第二天工作的前一天早上安排一次工作。

标签: mysql sql stored-procedures lambda database-trigger


【解决方案1】:

您需要多精确的通知?

如果您只是想在一天前的 13:00 收到通知,您可以使用简单的 cron 在每天 12:50 运行(取决于您的设置)。

如果您希望根据预订时间在一天前 12 小时发出通知,例如预订时间是 2020 年 10 月 10 日 20:00,通知时间是 08:00 09.10.2020,您可以将您的 cron 设置为每 5 分钟运行一次(同样取决于您的工作量),并让它在该时间段内发送通知。

如果您想要精确的通知,我建议您使用外部工具来完成这项工作,例如带有延迟消息插件的 RabbitMQ。

如果上述选项不适用,您可以使用“始终开启”脚本每秒检查更改。

【讨论】:

  • 对。 MySQL 自身无法生成出站消息。您必须编写代码来轮询数据库并生成这些消息。小心:过于频繁地轮询数据库会变得非常昂贵。拥有WHENEVER table.timestamp >= NOW() - INTERVAL 12 HOUR SEND table.user whatever; 会很棒,但SQL 没有。 :-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
相关资源
最近更新 更多