我已经用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-XGEThttp://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT
选项2>第二个选项可能是在Autosys配置中调度包装外壳脚本。
选项3>如果您使用的是Java生态系统,我们可以使用Spring批处理调度。
我发现了另一种选择。您可以在Sql作业中运行PowerShell脚本。我编写了调用Web Service的脚本,并编写了Sql Job来每周运行脚本。工作非常完美。
谢谢。