我有一个带按钮的网页。当用户按下按钮时,他会收到当前时间的电子邮件。我需要在60秒后异步发送给他另一条消息.. [他仍然按下按钮多少次他想要]
我该怎么做?
答案 0 :(得分:1)
在查找之后就是答案
// Wait X Sec and then try to send message
System.Timers.Timer t = new System.Timers.Timer();
t.Interval = Convert.ToDouble(ConfigurationManager.AppSettings["timer"]);
t.Elapsed += delegate { /*your function here */};
t.Start();
t.AutoReset = false; // do it once
答案 1 :(得分:0)
你可以在客户端进行,就像@Holystream建议的那样,但是如果用户离开你的页面60秒就会失败,更不用说关闭浏览器了。
如果您不想创建自己的排队机制,可以尝试使用Windows Scheduler。只需创建一个任务即可访问将发送该电子邮件的应用程序中的URL。它可以与你合作没有很多这样的请求,如果分钟不是绝对关键的(你可以错过一点,调度程序不是为这样的分辨率而设计的)。
答案 2 :(得分:0)
您应该使用计划时间戳在DB中存储计划数据。
如果用户多次按下按钮,您可以在数据库中验证是否已存在符合条件的预定电子邮件,请忽略它。
您需要设置Cron Job(调度程序)服务来调用您的页面,如果已经过了预定的时间,它将从数据库中的数据发送电子邮件。
根据您需要的准确性,您需要为Cron Job设置较短的持续时间以发送电子邮件。
如果你想设置自己的调度程序服务,一个好的C#库是http://csharp-source.net/open-source/job-schedulers/quartz-net。
希望这有帮助。