ASP.NET/C#:以特定间隔运行命令
我有一个使用SinglarR和MVC5编码的拍卖网站。我的数据库中存储了每个出价人的信用卡代币。拍卖结束时,需要向中标人的信用卡收费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
实现这一目标最有效的方法是什么?我考虑过使用一个过滤器,但是,代码只会在下次访客到达时运行,这可能是一段很长的时间,在某些日子里,听起来你需要一个预定的任务。这可以通过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>
可能很有用。在拍卖完成后,或物品标记为已卖给买家后,或买家下次登录系统时,应立即扣除付款。值得注意的是,您根本不应存储用户的信用卡详细信息。相反,您应该依赖于支付服务。信用卡代币,如原始帖子中所述。您如何确定此计划程序适用于哪个拍卖???如果我们有多次拍卖,这是否意味着每次拍卖都将并行进行?