xdmp:http-post中的超时选项如何工作?

时间:2019-07-19 16:21:33

标签: xquery marklogic

在我进行xdmp:http-post调用时,在XQuery代码中,可以在请求选项中配置超时值。假设我将其配置为5秒,它会返回一个超时异常。

我的问题是,MarkLogic会尝试完成调用XQuery模块还是取消它?很多时候,需要在管理控制台中完成此操作才能手动取消查询。

1 个答案:

答案 0 :(得分:1)

  

MarkLogic会尝试完成调用XQuery模块还是取消它?

您恰巧从xdmp:http-post()调用的模块不知道客户端已超时并且已停止等待发送响应。它将继续处理请求并努力生成响应。

如果您希望其较短的超时时间更接近调用xdmp:http-post()的模块的超时值,则可以添加xdmp:set-request-time-limit()来为此请求设置显式(较短)的超时时间。

xdmp:set-request-time-limit(6),
for $i in (1 to 1000)
return ( xdmp:log("I'm feeling sleepy..."||$i), xdmp:sleep(1000) )

您甚至可以接受超时值作为HTTP POST的请求参数,以便客户端可以为每个请求动态设置超时。