我有一个现有的数据结构,我被迫使用,按周和小时保存预定的事件。
我正在使用SQL Server 2008和ASP.NET控制台应用程序(暂时)来触发。
触发时间在数据库中存储为布尔值。
示例:
SendMonday bit Unchecked
SendTuesday bit Unchecked
SendWednesday bit Unchecked
...
=====================================
Send0000 bit Unchecked
Send0100 bit Unchecked
Send0200 bit Unchecked
Send0300 bit Unchecked
...
从理论和编程角度来看,为了在特定时间触发事件,最佳方法是什么?
我的方法涉及在数据库中存储“LastProcessed”日期并进行大量手动工作,但想知道是否有更好的方法。
答案 0 :(得分:2)
我会使用SQL Server Agent每小时运行一个计划任务来检查需要调用的事件。
答案 1 :(得分:0)
听起来像是后端存储过程的预定任务的作业。计划作业应该执行存储过程,sproc会查看具有调用时间的表,并决定是否以及需要执行什么。如果需要,可以将外部程序连接到存储过程。
或者,如果您不想依赖sproc和sql server代理,则可以在控制台应用程序中编写所有逻辑,并从Windows任务计划程序执行您的应用程序。因此,您的应用程序将从调度表中获取数据,决定是否以及如何操作并按要求继续。
我的偏好是采用第二种方法 - 更容易维护,但这实际上取决于您的要求和环境。