【问题标题】:modify database after time limit超过时间限制修改数据库
【发布时间】:2012-09-03 10:27:00
【问题描述】:

我正在实现一个数据库,它接受请求并将它们回复为Approved 或Denied
我想添加功能,以便在 3 天内未响应特定请求的情况下,它将自动回复为 Denied。它是数据库中的一个状态字段。
我在 asp.net 3.5 中使用带有 linq 的 sql server 2008 除了检查每个加载时间之外,还有其他方法吗?

【问题讨论】:

  • 当然可以使用 SQL 代理作业、计划任务、SSIS 包。您能否更具体地说明您的需求?
  • 确切地说,我正在处理休假交易,如果我申请本月月底的休假,那么它的状态应该是pending,直到月底前一天。在月底,它应该自动更改为Request Denied。
    这个怎么弄?我从未使用过 SQL 代理作业、计划任务、SSIS 包。但对服务有点了解。
    在这个标准中,什么会更有效?

标签: asp.net sql-server linq sql-server-2008


【解决方案1】:

首先:我的回答与@AnandPhadke 的类似,但差别不大。

我自己也遇到过这个问题好几次了。

1) 我通常会为这类任务构建一个“机器人”。

“机器人”是指一个非常简单的控制台应用程序,它只检查数据库并根据数据库结果执行所需的操作。此控制台应用程序还能够记录其活动(出于调试目的等,您可以使用开源 log4net 执行此任务)。

2) 然后我让标准的 Windows“任务计划程序”定期调用我的控制台应用程序。

这里有更多关于“任务计划程序”的信息:http://windows.microsoft.com/en-US/windows7/schedule-a-task

编辑/更新:

这是我要描述的主要内容

有几件事可能会影响 CPU 的负载。首先是计算密集型操作。我完全不知道您的数据库设计是什么样的,但我确定您的 SQL 查询越复杂(并且必须处理这个复杂查询的数据越多),它将需要更多的功能从 CPU。尝试优化您的查询。

【讨论】:

  • 感谢您的建议,哪个更需要资源? a) 添加控制台应用程序并通过任务管理器调用或 b) 调用 Web 服务?
  • 我不确定您所说的“资源匮乏”是什么意思? :-) 如果您让“任务计划程序”定期运行您的控制台应用程序 - 那么它在执行时会消耗一些系统资源。如果您从 Web 服务调用控制台逻辑 - 那么它在从那里执行时会消耗一些系统资源。我绝对不是想愚弄你,但我可能误解了你的要求。根据我的观点,我强烈建议使用“任务计划” - 控制台应用程序 - 解决方案,因为它的简单性。
  • 我的意思是如果消耗更多 CPU...数据库大小对您的解决方案有影响吗?
  • 我已经更新了我的答案。影响 CPU 的因素不仅仅是数据库大小。
【解决方案2】:

我的建议是,

编写一个 Windows 服务,它将在每个给定的时间间隔后检查数据库并执行操作。只需保持此 Windows 服务始终运行。在每个时间间隔它都会完成这项工作。

【讨论】:

  • 嗨@AnandPhadke 谢谢你的建议,使用这种方案,它将增加多少负载到连接中?
  • 它必须在每个时间间隔连接到 db,如果表中有任何内容要处理,然后继续,否则只需关闭连接。这取决于您想要连接到 db 的频率。我的意思是时间间隔。我想你可以延迟 5 分钟或 10 分钟。
【解决方案3】:

如果您只需要在间隔后修改 SQL Server 中的记录,请使用 SQL Server Agent。您可以设置在您想要的任何时间段运行的作业,它可以运行类似于存储过程的东西,可以检查您想要的内容并更新匹配的记录。这是一个关于如何设置工作的教程:

http://databases.about.com/od/sqlserver/ss/sql_server_agent_3.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多