MarkLogic JavaScript计划任务

时间:2015-06-23 17:21:10

标签: javascript scheduled-tasks marklogic

我尝试使用'计划任务'来安排脚本。在ML8。文档解释了这一点,但仅适用于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
}

2 个答案:

答案 0 :(得分:3)

尝试使用* .sjs扩展名(服务器端JavaScript)。

* .js扩展名可用于静态JavaScript资源以返回客户端,而不是在服务器上执行。

希望有帮助,

答案 1 :(得分:2)

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

但是,在同一主题上,并非ML中的所有项目都与您对Serverside Javascript的预期完全相同。例如,使用sjs作为触发器的目标是(或最近)不起作用。所以对于这样的事情,也可以使用xdmp-invoke将sjs调用包装在xqy中。