根据时间限制更改项目的状态

时间:2012-02-05 13:00:24

标签: c# .net asp.net-mvc email scheduled-tasks

我为客户建立了一个出价网站,用户在该网站上发布项目并设置拍卖持续时间。该项目首先处于待处理状态,直到管理员批准该项目或自用户首次发布后12小时后。从那时起,该项目已发布,其他用户可以对其进行出价。拍卖期结束后,该项目应关闭,最高出价者将赢得该项目...

除此之外,我还需要发送电子邮件通知......

  • 发布新项目后向管理员发送。
  • 获胜者一旦赢得冠军。
  • 拍卖结束后,物品的所有者
  • 一旦拍卖结束并且有一个胜利者(即:人们实际出价),就向管理员提出。

目前我正在做的是在我的业务层中调用一些方法来检查是否有任何已经超过12小时的待处理项目才能发布它们,以及是否有已发布的项目已超过其拍卖持续时间关闭它们。从多个地方调用此方法,例如网站的主页,项目的搜索页面等等......这实际上是导致我出现问题(Refer to this question)。所以我认为值得找到一种替代解决方案来帮助我摆脱所有这些最有可能因设计不良而引发的问题。

  1. 我应该通过从一个地方调用该方法并相应地发送电子邮件来集中这个吗?
  2. 我应该将这整件事委托给某种预定的任务吗?在这种情况下,运行此任务的时间框架是否合理?
  3. 还有其他建议吗?

2 个答案:

答案 0 :(得分:1)

  

我应该将这整件事委托给某种计划任务吗?在   在这种情况下,运行此任务的时间框架是合理的吗?

是的,这似乎是最好的方法。将电子邮件发送卸载到与ASP.NET MVC应用程序不同的进程。就时间范围而言,这取决于您的业务需求。您可以查看Quartz.NET,它可以用作任务调度机制。

答案 1 :(得分:1)

您绝对应该将其卸载到另一个进程,例如计划任务或服务。您没有说明您目前拥有多少用户或有多少用户可能同时做某事,但如果您发现您的用户群不断增长,在Web请求中发送大量电子邮件最终会超时。

单独的任务/服务还可以让您更好地控制发送的电子邮件和时间。