sql - 如何在 SQL Server 中编写轮询服务?
问题描述
我有两张桌子employee
和department
。
员工
Id, Name, JoiningDate, SpecialRegistrationDone, DepartmentId
部门
DepartmentId, Name
DepartmentId = 2
和有一个特殊的部门Name = "AI"
。
有一个 Java 服务将数据推送到表中Employee
。Department
现在,我必须编写一个满足条件的轮询服务(轮询频率为 15 分钟一次)
select e.*
from Employee e
inner join Department d on e.DepartmentId = d.DepartmentId
and e.DepartmentId = 2
and e.JoiningDate > cast(GetDate() as date)
and e.specialRegistrationDone = 0
如果获取了任何记录,则调用 Web 服务,例如http://specialdepartmentregistration/register并在那里传递员工详细信息。
一种编写方法是编写一个 Java 服务,该服务轮询数据库并执行此查询,获取结果并调用 Web 服务以获取结果集。
我正在寻找一种在 SQL Server 端创建服务的方法,该服务仅执行查询并调用 Web 服务。我该怎么写?在 SQL Server 2014 中甚至有可能吗?
解决方案
这是一种实现您想要实现的目标的方法:
Step-1: 如何每小时在sql server中运行一个存储过程?
Step-2:在存储过程中编写业务逻辑,检查数据
步骤 3:调用/发布到具有 CLR 集成的 Web 服务,如此处所述
不建议按照您计划的方式实施。数据库应该只专注于存储数据。
相反,您应该让 CRON 服务定期访问您的应用程序。然后从应用程序查询数据库并根据需要发布到 Web 服务。
或者,在您的应用程序中运行计划服务,您的应用程序可以如上所述检查数据库。Quartz是一个可以用于此目的的库。
推荐阅读
- rest - 使用带有 cURL 的 Jira REST API 上传 .zip 文件
- linux - RHEL os & ssh 加固 - 如何注册新用户帐户
- python - 创建一个新列表,枚举 Python 中另一个列表中的随机整数
- kotlin - FTP 传输期间 Kotlin Wi-Fi 丢失/信号不良
- sapui5 - sapui5:XML-View中函数的部分应用
- php - 在 MySQL 的 information_schema.KEY_COLUMN_USAGE 中找到多行
- c# - (MT5210) 本机链接失败,未定义符号:_GULIsLoggableLevel。Xamarin.iOS
- javascript - docker - 错误:找不到模块'winston'
- flutter - 使用 GestureDetector 旋转对象并更新值
- javascript - 如何初始化数字类型的变量