Azure sql database 当满足特定条件时,如何从azure sql发送电子邮件

Azure sql database 当满足特定条件时,如何从azure sql发送电子邮件,azure-sql-database,sendgrid,email,Azure Sql Database,Sendgrid,Email,我有一个azure sql数据库,其中存储了一些有关计划任务的用户信息。我需要允许用户在事件开始前30分钟收到通知,我无法在应用程序中自行执行此操作,因为该应用程序是windows窗体应用程序。我检查了一些使用逻辑应用程序的解决方案,但它只允许在添加或更新新记录时发送 但是我需要检查一下日程的当前时间和开始时间,如果相差不到30分钟,我会发送电子邮件 我的数据库如下 Name = John doe Email = johndoe@gmail.com Startdate = 09/12/2019

我有一个azure sql数据库,其中存储了一些有关计划任务的用户信息。我需要允许用户在事件开始前30分钟收到通知,我无法在应用程序中自行执行此操作,因为该应用程序是windows窗体应用程序。我检查了一些使用逻辑应用程序的解决方案,但它只允许在添加或更新新记录时发送

但是我需要检查一下日程的当前时间和开始时间,如果相差不到30分钟,我会发送电子邮件

我的数据库如下

Name = John doe
Email = johndoe@gmail.com 
Startdate = 09/12/2019 12:45 AM
Enddate = 09/12/2019 1:45 AM

如何实现这一点?

我的建议首先,您必须创建一个包含所有电子邮件字段的表(使用标识作为主键,并命名为EmailDetails)。然后创建一个逻辑应用程序,在插入到该表时触发。然后,您可以连接SendGrid模块发送电子邮件,如本文所示


使用Azure Automation(如图所示)每1小时运行一次存储过程,当计划任务即将启动时,它会在EmailDetails表中插入一条新记录。

Azure Automation是这里的最佳选项,但是您可以简单地在自动化运行手册中包含逻辑,以检查当前时间和计划的开始时间,并从那里触发电子邮件

缺点是单一计划每小时只能运行一次。Azure Automation中的计划可以配置的最频繁间隔为一小时。如果您需要更频繁地执行计划,则有两个选项:

  • 为runbook创建一个 网钩。Azure调度器在以下情况下提供更细粒度的粒度: 定义时间表
  • 创建四个计划,每个计划在15分钟内开始 每小时跑一次。此场景允许runbook运行 每15分钟有不同的时间表

  • 您可以使用具有相同DB连接的小型Winforms应用程序或控制台应用程序单独发送邮件,它将定期检查
    StartTime
    CurrentTime
    。您可以在任务计划程序中托管此应用程序,因此如果条件满足,应用程序将运行,否则将终止。