我想开发一个传递应用程序(自托管的WCF服务),该应用程序允许安排电子邮件。用户将分配时间表给电子邮件并发送。 WCF服务应该能够选择电子邮件并按计划的时间发送它。
我应该在这里使用什么方法?我正在考虑以下替代方案
除了上述两个以外,谁能为我提出一个可行的解决方案?
[编辑]:我可以为此使用SQL代理吗?
谢谢,
内存
最佳答案
我看到了“...除了上面提到的两个...”,但我认为没有其他方法可以实现这个目的:)
在Windows服务内部构建一个无限循环,如下所示:
private void DoTheThing()
{
try
{
while (true)
{
TheThing e = new TheThing();
Thread t = new Thread(new ThreadStart(e.Run));
t.Start();
Thread.Sleep(1000);
}
}
catch (ThreadAbortException) { }
catch (Exception ex) { /* Whatever error handling you got */ }
}
... TheThing有一个Run方法,它每1秒钟执行一次您需要的所有操作。这看起来很愚蠢(while(true)-是的,是的),但是自.NET 1.0以来在至少30台服务器上一直在不间断地工作:)只要确保在新线程中的Windows服务启动时调用此DoTheThing方法即可。
希望这可以帮助 :)