2015-06-23 49 views
2

我嘗試使用ML8中的「計劃任務」來計劃腳本。文檔解釋了這一點,但只適用於xQuery。 現在我有一個JavaScript文件,我想安排。MarkLogic 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 
} 

回答

3

嘗試* .sjs擴展(服務器端JavaScript)。

* .js擴展名可用於靜態JavaScript資源返回到客戶端,而不是在服務器上執行。

希望幫助,

2

我相信ehennum發現的問題對你(擴展 - 這是什麼MIME類型錯誤抱怨

然而,就同一主題,不是所有的ML中的項目與你期望的Serverside Javascript的工作方式相同,例如,使用sjs作爲觸發器的目標是(或最近)不起作用,因此對於這樣的事情,也可以將sjs調用包裝在xqy使用xdmp-invoke

+1

已經在8.0-2或8.0-3中修復,不確定如何在8.0-3中按預期觸發和執行至少:'x dmp.log('***** Document'+ uri +'被創建。*****')'(在Modules中保存爲/test-trigger.sjs,是的,這是整個文件內容:) – grtjn

+0

現在是固定的。但重要的是,儘管sjs仍處於使用的早期階段,但仍可能會出現一些皺紋。當人們發現它們時,它們當然會被消除。但實際上,這隻需要花費時間和系統在真實場景中的使用才能真正找到它們 - 還有幾個發佈週期需要解決。重點是:如果您認爲某件事情不像您期望的那樣具有如此全新的特徵,那麼暫停並考慮所有選項是件好事。在與sjs玩了10個月之後,我現在才真正感覺舒服:) –