0

我有一个现有的数据结构,我不得不使用它,计划的事件按星期几和每小时保存。

我正在使用 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”日期并进行大量手动工作,但想知道是否有更好的方法。

4

2 回答 2

2

我会使用SQL Server 代理每小时运行一个计划任务,以检查需要调用的事件。

于 2012-09-11T09:49:33.660 回答
0

听起来像是在后端有一个存储过程的计划任务的工作。计划作业应该执行存储过程,sproc 将查看带有调用时间的表并决定是否需要执行以及需要执行什么。如果需要,您可以将外部程序连接到存储过程中。

或者,如果您不想依赖 sproc 和 sql server 代理,您可以在控制台应用程序中编写所有逻辑,并从 Windows 任务计划程序执行您的应用程序。因此,您的应用程序将从调度表中获取数据,决定是否以及做什么,并根据需要继续进行。

我更喜欢第二种方法 - 更易于维护,但这实际上取决于您的要求和环境。

于 2012-09-11T10:02:33.047 回答