xquery - 当我尝试在 MarkLogic 中删除集合时出现超时错误
问题描述
我正在尝试使用该xdmp:collection-delete
函数通过查询控制台删除 MarkLogic 中的集合,但出现超时异常:
SVC-EXTIME: xdmp:collection-delete("") -- 超出时间限制"
该集合包含大约 150,000 个文档,并且是小型文档。有人可以帮忙吗?
管理控制台中的时间设置为 3600。我尝试使用 xdmp:spawn-function 批量删除它,但出现语法错误:
“意外的 Lbrace_,期待 Comma_ 或 Rpar_”:xquery 版本“0.9-ml”将变量 $uriMatch 定义为 xs:string {"/sortkey-257-2019*"} let $_ := for $uri in cts:uri-match ($uriMatch) return if(doc-available($uri)) then (xdmp:spawn-function(function(){ xdmp:collection-delete(xdmp:document-get-collections($uri)),xdmp:commit( )} , 更新 )) 否则 () 返回 $_
PFB,返回 XDMP:MAX-TASKS 异常的查询:xquery version "1.0-ml";让 $uriMatch:="/snapshot-257-2019*"
for $uri in cts:uri-match($uriMatch) return if(fn:doc-available($uri)) then let $x:=
xdmp:spawn-function(function(){ xdmp:collection-delete(xdmp: document-get-collections($uri)),xdmp:commit()}, update) return $x else xdmp:log("没有文档在集合中")
解决方案
有几种不同的方法可以解决 SVC-EXTIME 问题。
- 更改事务或请求的超时设置(取决于调用方式)。
xdmp:set-request-time-limit(3600)
或者:
xdmp:set-transaction-time-limit(3600)
将删除分成批次
使用CoRB执行删除
推荐阅读
- python - 将元素插入列表/索引的最后位置时出现问题?
- typescript - 读取walk /protos中的第一个路径时出错错误:ENOENT:没有这样的文件或目录,带有Firestore和Typescript lambda的lstat'/protos'
- unity3d - Unity Build 不同于编辑器
- julia - 我无法向 Julia 添加 github 存储库
- php - .htaccess 文件中的动态子域处理,用于 xxx.domain.com 重定向到 ../users 文件夹
- html - 在来自 Unix shell 的电子邮件中嵌入动态 HTML 表
- javascript - 在 Next.js 页面中检索子域
- javascript - Flexbox,滚动元素
- mysql - 为什么MYSQL时间比服务器时间晚2分钟
- reactjs - 动作完成时如何告诉 React-Redux 视图?