首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MarkLogic -是否可以配置每分钟运行一次直到作业完成的每周计划程序

MarkLogic -是否可以配置每分钟运行一次直到作业完成的每周计划程序
EN

Stack Overflow用户
提问于 2021-03-09 14:47:30
回答 1查看 38关注 0票数 1

我们使用的是MarkLogic v9.0-10.4

我们创建了6个调度器(每个节点一个,6个节点集群),每1分钟运行一次,并批量删除版本化文档。一批是20000个文档。这意味着它每分钟删除12万个文档。

现在我们再次希望将此活动安排在每周的基础上。就定在上午9点吧。因此,每周星期六上午9点,这6个调度程序应该每1分钟运行一次,直到有版本化的文档。(通常,调度程序需要5-7分钟来删除版本化文档)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-11 22:21:11

这样的模块与URI /tasks/delete-versions.xqy一起安装

代码语言:javascript
复制
declare variable $URIS external;
declare variable $BATCH-SIZE external;
declare variable $SLEEP external := 1000;
declare variable $MODULES-DB external;

let $head := fn:subsequence($URIS, 1, $BATCH-SIZE)
let $tail := fn:subsequence($URIS, $BATCH-SIZE + 1)
return (
  xdmp:log("deleting " || count($head) || " of " || count($URIS)),
  for $uri in $head  
  return xdmp:document-delete($uri),
  
  if (count($tail) gt 0) then 
    let $params := map:map() 
      => map:with(xs:QName("URIS") => xdmp:key-from-QName(), $tail) 
      => map:with(xs:QName("BATCH-SIZE") => xdmp:key-from-QName(), $BATCH-SIZE)
      => map:with(xs:QName("SLEEP") => xdmp:key-from-QName(), $SLEEP)
      => map:with(xs:QName("MODULES-DB") => xdmp:key-from-QName(), $MODULES-DB)
    let $options := map:map() => map:with("modules", $MODULES-DB)
    return 
      (xdmp:sleep($SLEEP), xdmp:spawn("/tasks/delete-versions.xqy", $params, $options))
  else ()
)

您可以按如下方式创建一个每周计划的计划任务,用您的逻辑替换URIs查询以选择要删除的版本,并指定安装递归删除模块的模块数据库:

代码语言:javascript
复制
xquery version "1.0-ml";
let $uris := cts:uris("", (), cts:true-query())
let $modules-db := xdmp:modules-database()
return
  xdmp:spawn("/tasks/delete-versions.xqy", 
    map:map() 
      => map:with(xs:QName("URIS") => xdmp:key-from-QName(), $uris)
      => map:with(xs:QName("BATCH-SIZE") => xdmp:key-from-QName(), 20000)
      => map:with(xs:QName("SLEEP") => xdmp:key-from-QName(), 60000)
      => map:with(xs:QName("MODULES-DB") => xdmp:key-from-QName(), $modules-db),
    map:map() => map:with("modules", $modules-db)  
  )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66542061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档