0

我的网站中有一些用户有一个有截止日期的任务。我想在他们的截止日期结束时给他们发电子邮件。但此操作必须自动执行。有没有办法制作这样的东西?我应该在asp中使用全局,还是有更好的方法?

4

1 回答 1

1

您确实应该编写计划任务或 Windows 服务来执行此类操作。如果没有请求,ASP.NET 网站会很高兴地进入休眠状态,并且您真的不希望在 Web 服务器上有长时间运行的线程。

(有一个“技巧”使用缓存过期来获得对您的代码的预定回调,如果您不能使用下面的选项,请尝试它。)

编写一个端点(如 /CheckTaskDeadline.ashx 之类的 URL),调用该端点时将检查任务截止日期并触发操作(发送电子邮件)。添加一个计划任务,该任务每 5 分钟或每小时(在接近截止日期时可靠触发所需的任何粒度)向端点发出请求。使用curlwget来“ping”该 URL。

如果您无权访问机器,有时您可以使用虚拟主机的配置面板创建计划任务。如果你不这样做,请好好问他们:-)。一个好的托管服务提供商应该能够为您提供帮助。否则,请考虑将应用程序移至另一台主机,或获得单独的“ping”服务,例如Pingdom

于 2012-12-11T22:31:04.570 回答