我們正在嘗試爲我們的cron作業(CF,Java,SQLServer等)構建一個儀表板,以便我們可以瞭解最後一次運行的情況,結果是什麼以及計劃運行的時間下一個。如何在ColdFusion中獲取計劃任務和上次運行結果的列表?
是否存在與CFAdmin API或一些無證<cfschedule>
把戲一種方式來獲得的列表:
- 安排什麼任務?
- 最後一次運行時間是多少?
- 它成功了嗎?
- 什麼時候計劃再次運行?
我們目前正在使用CF8,但將在幾周內升級到CF9。
我們正在嘗試爲我們的cron作業(CF,Java,SQLServer等)構建一個儀表板,以便我們可以瞭解最後一次運行的情況,結果是什麼以及計劃運行的時間下一個。如何在ColdFusion中獲取計劃任務和上次運行結果的列表?
是否存在與CFAdmin API或一些無證<cfschedule>
把戲一種方式來獲得的列表:
我們目前正在使用CF8,但將在幾周內升級到CF9。
我爲你做了一點研究。我發現一個稍微老的參考文獻仍然有效,至少在CF8中,也可能在CF9中。
<cfobject type="JAVA" action="Create" name="factory" class="coldfusion.server.ServiceFactory">
<cfset allTasks = factory.CronService.listAll()/>
<cfloop index="i" from="1" to="#ArrayLen(allTasks)#">
<cfdump var="#allTasks[i]#" />
</cfloop>
從http://www.bpurcell.org/blog/index.cfm?mode=entry&ENTRY=935
這回答您的問題#1和#4。 至於#3,可能沒有答案。 ColdFusion的計劃任務引擎只是在規定的時間加載指定的URL。沒有成功或失敗 - 它只是執行一個HTTP請求。
希望這會有所幫助。
可以「發佈」作業的結果。來自HTTP請求的響應可以寫入文件服務器,並且將具有最後一次運行作業的值。
<cfschedule action = "update"
task = "TaskName"
operation = "HTTPRequest"
url = "/index.cfm?action=task"
startDate = "#STARTDATE#"
startTime = "12:00:00 AM"
interval = "Daily"
resolveURL = "NO"
requestTimeOut = "600"
publish = "yes"
path = "#PATH#"
file = "log_file.log">
然後你可以根據數據庫驗證日誌,如果你想。由於它是來自頁面的響應,因此您也可以在此處獲取並存儲錯誤和警告。
@eric kolb是正確的 - 這是以編程方式執行它的方式。如果你想在列表上如何反應的更多控制,試試下面的代碼(本質上是相同的,但在CFSCRIPT):
<cfscript>
scheduledTasksArray=ArrayNew(1);
taskService=createobject('java','coldfusion.server.ServiceFactory').getCronService();
scheduledTasksArray=taskservice.listall();
另外,回答#2,#3(這是相當多隻是一個兩部分的問題,如果你這樣做的話): 當任務運行時,給自己發一封電子郵件,上面寫着「HEY!I'RUNNING !!!!」然後再說一句「嘿,我完了!」在任務代碼的底部 - 你也可以添加一個時間戳來告訴它什麼時候開始和停止(在一個數據庫中記錄它也可以)。另外,爲了知道下一次運行的時間,只需看看最後一次以及ServiceFactory調用結果返回的「interval」字段。 (如果你需要什麼我的意思是這進一步說明,隨意問。
希望這有助於如果你還沒有想通了,你需要的是什麼已經
大問題。我很想得到同樣的信息 – Jason
任何機會你的儀表板將最終在riaforge ??聽起來不錯 – Antony