首页 > 解决方案 > 使用查询/代码动态创建的 SQL 作业

问题描述

我正在开发一个投标系统。

人们在出价时间开始和结束时出价,他们会得到结果。

是否可以使用查询创建 SQL 作业?

我想做的是,一旦投标时间结束,我想更新每个投标人的记录,谁是赢家或输家。

所以,我想到的是,当管理员设置投标的开始日期和结束日期时,我想动态创建一个调度作业,该作业将自动运行存储过程,当日期等于结束时更新每条记录日期。

可能吗?

我在想的另一种方法是,在投标页面上放置一个检查器,该检查器会不断检查数据库的投标时间,如果它检测到投标已经结束,它会自动执行一个更新每个用户记录的存储过程?我对这种方法感到害怕的是,如果许多用户正在访问该页面,许多用户现在会调用该存储过程。

任何建议都非常感谢。

标签: sqlsql-server

解决方案


我认为,一旦投标时间结束,通知投标人的系统是更好的方法,原因如下:

  • 由于每次投标一次,而不是每次投标多次调用,并且不影响系统性能
  • 由于它是系统驱动的,用户不能试图通过多次不必要的调用来使系统过载。

我不建议你去做动态的工作。原因是:

  • 为每个投标创建一个动态作业,将使系统拥有大量作业且难以维护

  • 工作完成后,您需要有一个单独的内务脚本来清理工作

我建议做一个频率很短的静态工作

  • 即使您可以接受 30 秒的延迟,您甚至可以将作业安排为 30 秒的频率,这将看到过去 30 秒内完成的投标并向投标人发送更新。我不确定,如何才能减少。

在 SO 帖子中阅读有关工作计划频率的更多信息


推荐阅读