首页 > 解决方案 > 定期调用 Web 服务

问题描述

我已经在 J​​AVA 中实现了一个 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

但我不确定它是最安全的选择。

标签: javasql-serverweb-services

解决方案


有许多选项可用于配置调度程序以定期调用 Web 服务调用。

选项 1> 最简单的一种是在 linux 系统中使用cURL实用程序并将其安排在crontab条目中。

调用示例: curl -XGET http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT

选项 2> 第二个选项可以是在Autosys配置中安排包装器外壳脚本。

选项 3> 如果您使用的是 Java 生态系统,我们可以使用Spring 批处理调度


推荐阅读