在我进行xdmp:http-post
调用时,在XQuery代码中,可以在请求选项中配置超时值。假设我将其配置为5秒,它会返回一个超时异常。
我的问题是,MarkLogic会尝试完成调用XQuery模块还是取消它?很多时候,需要在管理控制台中完成此操作才能手动取消查询。
答案 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的请求参数,以便客户端可以为每个请求动态设置超时。