java - 定期调用 Web 服务
问题描述
我已经在 JAVA 中实现了一个 REST API。我想定期运行它,也就是说,每周在指定的时间运行。我正在尝试通过 SQL 服务器作业调用 Web 服务来自动执行此操作。我无法设置此呼叫。我读过的每一篇文章要么表明这是一个坏主意,要么表明它太复杂而无法理解。任何人都可以提供一种简单的方法来设置通话吗?或者如果有替代品,那些是那些?
我已经尝试过:
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
'http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT', --Your Web Service Url (invoked)
'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
但我不确定它是最安全的选择。
解决方案
有许多选项可用于配置调度程序以定期调用 Web 服务调用。
选项 1> 最简单的一种是在 linux 系统中使用cURL实用程序并将其安排在crontab条目中。
调用示例: curl -XGET http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT
选项 2> 第二个选项可以是在Autosys配置中安排包装器外壳脚本。
选项 3> 如果您使用的是 Java 生态系统,我们可以使用Spring 批处理调度。
推荐阅读
- java - Java:将多个表中的 SQL 选择映射到多个实体中
- postgis - 在 Geoserver 中使用 SLD 设置多边形样式
- bash - shell 脚本中的 ${img_file%.*} 是什么意思?
- c# - 在没有用户凭据的情况下使用 MS Graph API
- c++ - 我们如何使用我们在 C++ 中开发的 Windows PC 应用程序访问在模块中创建的 SPPoverBLE 配置文件
- swift - 在没有更多 NSNotification 上下文的情况下,表达式的类型是模棱两可的
- firebase - 如何从云函数动态地在 Cloud Firestore 中创建集合
- javascript - Moment, get financial start date based on end date
- javascript - javascript/selenium webdriver:无限完成后同步调用函数
- vue.js - 向 vue 元素添加一个类