无法从 CPF 操作模块内创建 MarkLogic 计划任务

2023-12-15

我有一个 MarkLogic 数据库内容处理框架(CPF) 已安装且 CPF 管道如下:

  1. 每当插入文档时,它都会获取以下值执行日期从文档中并安排当时的任务。

Example:

样本文件:

<sample>
  <execution-date>2014-10-20T12:29:10</execution-date>
</sample>

插入时触发 CPF 操作模块,该模块读取以下值执行日期字段并创建要在读取的时间执行的计划任务执行日期 field.

以下是 CPF 操作模块中创建计划任务的 XQuery 代码片段:

let $doc := fn:doc( $cpf:document-uri )
let $releasedon := xs:string($doc/sample/execution-date/text())

let $config := admin:get-configuration()
let $group := admin:group-get-id($config, "Default")

let $new-task :=
     admin:group-one-time-scheduled-task(
        "/tasks/task.xqy",
        "/",
        xs:dateTime($releasedon),
        xdmp:database("SampleDB"),
        xdmp:database("Modules"),
        xdmp:user("admin"), 
        (),
        "normal")

let $addTask := admin:group-add-scheduled-task($config,$group, $new-task)

return

    admin:save-configuration($addTask),
    xdmp:log(fn:concat("Task for document Uri: ", $cpf:document-uri, " created"))

现在,当我插入单个文档时,一切都会按预期工作,即:

  1. 文档插入成功
  2. CPF动作模块触发成功
  3. 计划任务创建成功。

But,当我尝试使用以下命令插入多个文档时:

xdmp:document-insert("/1.xml", 
    <sample>
      <execution-date>2014-10-21T10:00:00</execution-date>
    </sample>, 
    xdmp:default-permissions(),
    ("documents"))
,
xdmp:document-insert("/2.xml", 
    <sample>
      <execution-date>2014-10-20T11:00:00</execution-date>
    </sample>, 
    xdmp:default-permissions(),
    ("documents"))

CPF操作模块触发成功(日志中可以看到日志消息)BUT ONLY创建一个计划任务。

在查看 MarkLogic 管理界面时,我只能找到一个计划任务,该任务计划运行于2014-10-20T11:00:00

请让我知道我做错了什么或者是否缺少任何配置。 欢迎任何建议。

Thanks!


这里的根本问题是管理配置操作 API不是事务保护操作,因此当您并行运行两个操作时,每个操作都会看到配置文件的初始状态,然后写入其位以添加计划任务,然后保存它,并且只有其中一个获胜。您可以通过强制锁定某些内容来强制其以事务保护的方式运行。URI它是什么并不重要。它甚至不必位于数据库中。只要所做的一切都锁定在同一个URI你很好。xdmp:lock-for-update("my.example.uri")会这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 CPF 操作模块内创建 MarkLogic 计划任务 的相关文章

  • MarkLogic 9 cts.parse 无法正确解析查询

    我正在使用 MarkLogic 9 开发基于 Web 的搜索应用程序 我有一个查询构建界面 允许用户将字符串输入到与数据库中文档的特定 JSON 属性相对应的文本框中 这个想法是 用户可以完全按照 cts parse 我使用服务器端 jav
  • 任务计划程序错误消息:80041318,这是什么意思?

    我已经搜索并搜索了 MSDN 以找到值为 80041318 的 HRESULT 错误的定义 但我找不到它 我正在 C Win32 中工作 尝试安排一个在当前用户登录时执行的任务 函数 RegisterTaskDefinition 失败并返回
  • 如何每天下午 2 点运行 TimerTask?

    我想每天下午 2 点执行一项工作 哪种方法java util Timer我可以用它来安排我的工作吗 2 小时后 运行它将停止作业并重新安排到第二天下午 2 点 Calendar today Calendar getInstance toda
  • 如何在不使用 Windows 任务计划程序的情况下安排运行 bat 文件? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个触发 Python 脚本的批处理 bat 文件 该脚本需要大约 25 分钟才能交互完成 通过命令提示符手动完成 该批处理文件需要每天
  • 如何设置 Quartz.NET 来安排电子邮件

    有两种解决方案Quartz server 2008 sln and 石英 2008 sln在下载的quartz NET 库中 现在我必须设置重复工作 数据库中会有一个表格 其中定义了所有时间表 例如每月的第一个星期五 每月 5 个 每个星期
  • Windows 7 任务计划程序和 Python - 壁纸不变

    我尝试每五分钟运行一次 Python 脚本来更新 Windows 7 桌面背景 从命令行启动时它可以完美运行 但不能作为计划任务运行 相关代码 import ctypes According to MSDN other websites S
  • .vbs 文件可以是预定脚本吗?

    我编写了一个 vbs 脚本 目前由用户手动运行 如何在 Windows XP 和 Windows 7 上第一次手动执行此脚本时 在任务计划程序中自行安排该脚本 在每天的固定时间自动运行 EDIT Option Explicit Dim oS
  • 更改 Windows 计划任务的电源设置

    我创建了一个 Windows 任务并计划每 1 小时运行一次 任务每小时运行一次 但收到警告Task Scheduler did not launch task Sample Task because computer is running
  • 具有多个服务器的计划任务 - 单点责任

    我们有一个 Spring JPA Web 应用程序 我们使用两个运行应用程序并使用相同数据库的 tomcat 服务器 您的应用程序要求之一是执行 cron 计划任务 经过简短的研究 我们发现 Spring 框架为 cron 作业提供了一个非
  • Powershell计划任务冲突?

    我已安排两个 powershell 脚本作为任务在 00 00 运行 今天早上我检查了事件日志 发现其中一个脚本失败 出现以下异常 失败 错误是 未能 在以下位置创建日志条目 C Users SPSETU 1 AppData Local T
  • Web 应用程序的计划任务

    为 Web 应用程序创建计划任务 无论是否有单独的 Web 桌面应用程序 有哪些不同的方法 如果我们谈论的是 Microsoft 平台 那么我总是会开发一个单独的 Windows 服务来处理此类批处理任务 您始终可以引用 Web 应用程序正
  • C# - System.Timers.Timer 的替代方案,在特定时间调用函数

    我想在特定时间调用 C 应用程序上的特定函数 起初我考虑使用Timer System Time Timer 但很快就变得无法使用 为什么 简单的 Timer 类需要一个Interval以毫秒为单位 但考虑到我可能希望执行该函数 假设在一周内
  • 在 C# 中创建 Cron 作业

    我正在用 C 编写一个调度类型应用程序 并允许用户存储他们想要在特定时间运行的任务 现在 我为他们提供了指定运行频率 每日 每周 每月 以及指定时间的选项 然后将其存储在数据库中 我在理解其背后的伪代码时遇到了一些麻烦 并且正在寻找一些有关
  • 一起使用@Scheduled 和@Async 吗?

    如果我想要一个重复异步的方法 我可以一起使用 Scheduled 和 Async 吗 Async Scheduled fixedDelay x public void doSomethingEveryXMinuteAsync action
  • 为 schtasks.exe 指定日期参数的独立于语言的方法

    我正在尝试将新任务添加到 Windows 任务计划程序schtasks exe 我现在遇到的问题是指定任务应该在一周中的哪一天运行 据我所知 愚蠢的程序坚持将该参数作为日期名称的字符串缩写 本地化为操作系统语言 其他参数可以很好地接受英语字
  • Windows 任务计划程序报告不正确/不一致的结果代码

    背景 我正在尝试在计划任务失败时收到电子邮件通知 我的任务可以通过退出代码 错误级别 指示失败 我想使用它并遵循中描述的过滤方法这个答案 https stackoverflow com a 4289360 29805触发电子邮件 Probl
  • java定时器任务调度

    通过阅读 Stack Overflow 我发现很多人不建议使用 Timer Task 嗯 但我已经实现了这个 我有这个代码 detectionHandlerTimer schedule myTimerTask 60 1000 60 1000
  • Marklogic REST API 搜索最新文档版本

    我们需要使用 Marklogic 的 REST API 将 MarkLogic 搜索限制为托管文档的最新版本 我们正在使用 MarkLogic 6 使用直接 xquery 您可以使用dls documents query 作为附加查询选项
  • 使用 cts:query 检查属性是否存在

    cts element query xs QName elm cts and query 将给出元素所在的所有片段elm存在 同样 如果我想要所有具有属性的文档 例如atr 存在于elm我该怎么办 cts element attribute
  • Laravel 调度程序不会自动运行

    我做了一个调度程序 当我用php artisan userRanking有用 这是代码中的Kernel php protected commands App Console Commands UserRanking class protec

随机推荐