我需要在我们的网站上提供行动/事件的安排。一个废话类比可以是一个日历系统,一个人添加一个日历项目,当日期/时间被“命中”时,就会触发一些逻辑(例如计算报告)。
我可能有成百上千个由我的客户输入的预定事件。当客户输入要安排的内容时,我会将该信息保存到数据库中。然后我猜我会在某处添加一个事件/作业,其中将包含数据库表主键。当事件被触发时,我将从数据库中获取该信息,然后执行逻辑。完毕。
有哪些常见的解决方案来处理这个问题?
我正在使用 .NET 3.5 SP1。 DB 是 Sql Server 2008。不过 UI 将是基于 Web 的。
我不确定人们是否使用 MSMQ?还是 Sql Server 内置的东西?或者一些带有 NT 服务的开源库(例如 Quartz.NET)。服务器将是 windows 2008 标准版。
另外 - 请不要建议使用等效的 cron 作业或任何命令行脚本等。
最后,这是次要目标..我很想把它扔到 azure 上,因为嘘和咯咯笑......所以这也可能吗?这只是一个愿望 list 的想法。如果解决方案比使用 Azure 更容易,我更愿意在专用盒子上进行。
欢呼:)
编辑:需要触发事件时处理的逻辑是后台作业。不需要用户界面。
最佳答案
Quartz.NET 可能也能很好地处理这些需求。我看到的好处在于设置调度程序(CronTrigger + 日历)的各种方式,以及在可测试代码(作业)的小单元中拥有您的工作的能力。
Quartz.NET 还通过集群功能为您提供所需的分发和故障转移。一个不错的功能也是每个触发器可配置的失火处理设置,让您有机会对失火和调度程序停机时间使用react。
SQL Service Broker 似乎没有轮询的好处,我想知道这是否会成为问题,但代理的缺点是听起来有点复杂(至少从我上面读到的描述来看)。
只是我有偏见的 0.02 美元。
关于.net - 如何在 .NET 中执行基于时间/计划的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1015945/