【发布时间】:2012-02-07 23:43:24
【问题描述】:
在我正在进行的项目中,用户可以自己订阅课程。课程的持续时间是可变的,以周计算(因此 4、5 或 6 周)。他们可以随时订阅,因此每个用户的开始日期都不同。
现在我想在每周初向用户发送一封个性化的电子邮件(所以当他们进入第 2 周、第 3 周等时)。电子邮件每周都不一样。
我知道我必须编写一个任务并定期安排它,但我不确定我应该如何选择正确的用户。我可以编写一个 SQL 命令,选择开始日期为 7、14、21 或 28 天前的所有用户,并计算他们所处的周数,但这似乎很容易出错(如果任务失败怎么办,然后他们将不会在下一个任务周期中收到消息)。
实现这一目标的最佳方法是什么?
该项目是 C# 中的 ASP.NET MVC 应用程序,在 IIS 上具有 NHibernate。
【问题讨论】:
-
"如果任务失败,那么他们将不会在下一个任务周期中收到消息" 如果您想自动恢复,那么您应该选择过去 28 天内开始的所有用户,即使如果不完全是 7,则登录一个单独的表“在 Y 日期发送用户电子邮件 X”,然后检查是否有任何未完成的电子邮件要发送。或者制作该手册:向管理员发送任何故障警报,然后在当天介入并修复它。
标签: .net asp.net-mvc scheduled-tasks scheduling