MarkLogic JavaScript 计划任务

MarkLogic JavaScript scheduled task

我尝试使用 ML8 中的 'Scheduled Tasks' 安排脚本。文档对此进行了一些解释,但仅适用于 xQuery。 现在我有一个要安排的 JavaScript 文件。

日志文件中的错误:

2015-06-23 19:11:00.416 Notice: TaskServer: XDMP-NOEXECUTE: Document is not of executable mimetype. URI: /scheduled/cleanData.js
2015-06-23 19:11:00.416 Notice: TaskServer: in /scheduled/cleanData.js [1.0-ml]

我的脚本:

/* Scheduled script to delete old data */
var now      = new Date();
var yearBack = now.setDate(now.getDate() - 65);

var date = new Date(yearBack);
var b    = cts.jsonPropertyRangeQuery("Dtm", "<", date);
var c    = fn.subsequence(cts.uris("", [], b), 1, 10);

while (true) {
    var uri = c.next();

    if (uri.done == true){
        break;
    }

   xdmp.log(uri.value, "info"); // log for testing
}

试试 *.sjs 扩展(服务器端 JavaScript)。

*.js 扩展可用于静态 JavaScript 资源 return 到客户端而不是在服务器上执行。

希望对您有所帮助,

我相信 ehennum 为您找到了问题(扩展名 - 这就是 mime 类型错误所抱怨的。

然而,在同一主题上,并非 ML 中的所有项目都像您对服务器端 Javascript 的预期那样工作。例如,使用 sjs 作为触发器的目标是(或最近)不起作用。因此,对于类似的事情,也可以使用 xdmp-invoke 将 sjs 调用包装在 xqy 中。