ASP.NET/C#:以特定间隔运行命令

ASP.NET/C#:以特定间隔运行命令,c#,asp.net,asp.net-mvc,signalr,C#,Asp.net,Asp.net Mvc,Signalr,我有一个使用SinglarR和MVC5编码的拍卖网站。我的数据库中存储了每个出价人的信用卡代币。拍卖结束时,需要向中标人的信用卡收费 实现这一目标最有效的方法是什么?我考虑过使用一个过滤器,但是,代码只会在下次访客到达时运行,这可能是一段很长的时间,在某些日子里,听起来你需要一个预定的任务。这可以通过HttpModule完成。实现类似于: public class CheckAuctionsScheduleModule : IHttpModule { static Timer timer

我有一个使用SinglarR和MVC5编码的拍卖网站。我的数据库中存储了每个出价人的信用卡代币。拍卖结束时,需要向中标人的信用卡收费


实现这一目标最有效的方法是什么?我考虑过使用一个过滤器,但是,代码只会在下次访客到达时运行,这可能是一段很长的时间,在某些日子里,听起来你需要一个预定的任务。这可以通过HttpModule完成。实现类似于:

public class CheckAuctionsScheduleModule : IHttpModule
{
    static Timer timer;
    long interval = 60000; //60 secs
    static object synclock = new object();
    public void Init(HttpApplication app)
    {
        if(timer==null) timer = new Timer(new TimerCallback(CheckAuctions), null, 0, interval);
    }

    private void CheckAuctions(object obj)
    {
        lock (synclock)
        {
           //implement here your logic
           //check completed auctions
           //send notifications to bidder etc.  

        }
    }
    public void Dispose()
    { 
    //implement if needed
    }
}
在web.config中:

<system.webServer>
  <modules>
    <add name="CheckAuctionsSchedule" type="MyMvcApp.Modules.CheckAuctionsScheduleModule"/>
  </modules>
</system.webServer>


可能很有用。

在拍卖完成后,或物品标记为已卖给买家后,或买家下次登录系统时,应立即扣除付款。值得注意的是,您根本不应存储用户的信用卡详细信息。相反,您应该依赖于支付服务。信用卡代币,如原始帖子中所述。您如何确定此计划程序适用于哪个拍卖???如果我们有多次拍卖,这是否意味着每次拍卖都将并行进行?