我有一个在上运行并在.net中托管的网络应用程序。我们允许客户设置提醒/提醒,然后在登录后通过电子邮件发送给他们。
我们如何将其转变为实时服务。 IE:在db中设置的时间自动发送电子邮件。在过去,我会使用Windows服务,但我不太清楚从哪里开始看目前。
答案 0 :(得分:0)
我不确定您对实时电子邮件通知的意思,但不考虑使用Windows服务,而是考虑使用Azure中的电子邮件递送服务sendgrid。
修改:
对于触发器,您可以使用逻辑应用程序,因此只要数据库中添加了新行,您就可以发送电子邮件,请参阅https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-sqlazure
答案 1 :(得分:0)
在azure中,我们有一个作业调度程序,可以帮助您运行作业或进行服务调用,这将在预定的时间间隔内触发所有电子邮件。你也可以安装任何Windows作业。
答案 2 :(得分:0)
您可以查看Quartz Scheduler,这是我在很多项目中使用的调度程序之一,应该能够完成您正在寻找的任务。
答案 3 :(得分:0)
我认为您想要的是在Azure WebJob中运行数据库检查和电子邮件发送任务:Run Background tasks with WebJobs
使用Azure Webjobs,您可以根据需要或通过websjob调度程序以设定的间隔运行后台任务。
一些可以帮助您入门的链接:
答案 4 :(得分:0)
根据给定的要求。我的理解是你要在登录db时发送电子邮件。我的申请中也有同样的含义。 以下是实施它的先决条件。
a。)azure queue - 将电子邮件添加到队列。但是,如果您使用数据库,那就没问题了。在这种情况下,您可以将数据保存到db并将该表的主键添加到队列消息中。这样我们就可以从基于数据库的主键读取所有必需的数据。
b。)web job sdk - 我们用它来实时发送电子邮件。实际上当任何项目添加到队列中时。 web job sdk auto触发一个事件。我们编写逻辑以在该事件中发送电子邮件。
c。)发送网格 - 然后我们将用来发送电子邮件。
过程就是这样。
发送任何电子邮件
1。)它记录到与当前工作相同的db。
2。)使存储队列的首要键输入。
3.)随着条目添加到商店队列。 Web作业sdk事件触发器。在此事件中,我们获取该数据库主键。
4。)write方法从db获取所有数据。
5.使用发送网格发送该电子邮件。
希望这对您有所帮助:))
答案 5 :(得分:0)
您可以为客户设置的每个提醒创建一个作业,并使用SendGrid或内置的其他电子邮件操作来发送提醒。这种方法的好处是您不需要在单独的数据库中维护计划时间的记录。
选项2你可以有一个在循环触发器上运行的逻辑应用程序(例如每分钟运行一次),第一个动作是运行SQL存储过程以获取应在下一分钟发出的提醒,然后使用内置发送电子邮件的电子邮件动作。这种方法的好处是,如果这是一个问题,您将所有用户的数据保存在您自己的数据库中。
您可能会从Azure上提供的服务组合中受益,以节省成本,具体取决于您将从客户那里看到的工作数量/频率。例如,您可以使用Azure Scheduler为每个提醒安排作业,操作将是调用端点(端点甚至可以是另一个Logic Apps)来发送电子邮件。