【问题标题】:Marklogic 8 : Scheduled task do not start and no logsMarklogic 8:计划任务不启动且没有日志
【发布时间】:2017-08-11 06:48:54
【问题描述】:

我使用“调度器任务”在 ML 8.0.6 上通过 Xquery 查询安排了数据提取。

我的 Xquery 查询(如果我在 ML Web 控制台中复制/粘贴它并且我在 AWS S3 上获得了可用文件,则此查询有效):

xdmp:save("s3://XX.csv",let $nl := "
"

return
document {

for $book in collection("books")/books
return (root($book)/bookId||","||
        $optin/updatedDate||$nl
)
})

我的计划任务:

  • 任务已启用:是
  • 任务路径:/home/bob/extraction.xqy
  • 任务根目录:/
  • 任务类型:每小时
  • 任务周期:1
  • 任务开始时间:8 点钟
  • 任务数据库:我的数据库
  • 任务模块:文件系统
  • 任务用户:管理员
  • 任务宿主:XX
  • 任务优先级:更高

不幸的是,我的脚本没有被执行,因为在 AWS S3(使用的存储)上没有生成文件并且我没有任何日志。

任何想法: 1/调试调度程序任务中的作业? 2/ 查看作业在预期时间运行吗?

谢谢, 罗曼。

【问题讨论】:

    标签: xquery marklogic marklogic-8


    【解决方案1】:

    首先,我会尝试查看 ErrorLog.txt,因为它可能会告诉您在哪里寻找问题。

    xdmp:filesystem-file(concat(xdmp:data-directory(),"/","Logs","/","ErrorLog.txt"))
    
    • 脚本在逻辑上位于何处:是否已上传到内容数据库、模块数据库或 ./MarkLogic/Modules 目录?
    • 如果这是一个集群,您是否指定了它在哪个主机上运行?如果是这样,并且使用文件系统模块,则确保脚本存在于指定主机的 ./MarkLogic/Modules 目录中。如果不是,则使用文件系统模块,然后确保脚本存在于所有集群主机的 ./MarkLogic/Modules 目录中。

    至于查看job运行,可以查看http://servername:8002/dashboard/,看看Query Execution标签看看运行的进程,也可以获取查看任务服务器的 状态 页面(配置 > 组 > [组名称] > 任务服务器:状态 并点击显示更多按钮)

    【讨论】:

    • 谢谢迈克尔。不确定是否理解您所说的关于脚本位置的内容。我将脚本放在用户的家中:/home/toto/test.xqy 这样做可以吗,还是必须将其放在 ML 文件夹中?如果是,如何在任务类型/任务根目录中指定文件的路径?文档中不是很清楚
    • 要通过任务管理器执行脚本,该脚本需要位于系统上的一个数据库中,或者位于调用它的主机上 MarkLogic 安装目录中的 Modules 文件夹中。
    • 好的,谢谢迈克尔。但是这种情况下如何填写task path和task root这两个变量呢?
    • 任务路径是脚本的文件系统路径或URI,任务根通常是/。您可能必须在文件系统路径上使用 xdmp:filesystem-directory("/path/to/file") 以确保服务器具有权限。
    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多