Frage

Wir versuchen, ein Dashboard für unsere Cron-Jobs zu bauen ---- CF, Java, SQL Server, etc., so dass wir sehen können, wenn die Dinge zuletzt laufen, was das Ergebnis war, und wenn sie geplant laufen weiter.

Gibt es eine Möglichkeit mit dem CFAdmin API oder einige undokumentierte <cfschedule> Trick, um eine Liste zu erhalten von:

  1. Welche Aufgaben geplant werden?
  2. Was der letzte Lauf war?
  3. Haben sie Erfolg haben?
  4. Wenn es geplant wieder laufen?

Wir sind momentan in CF8, wird aber innerhalb weniger Wochen ein Upgrade auf CF9 sein.

War es hilfreich?

Lösung

Ich habe eine wenig Forschung in dieser für Sie. Ich fand eine etwas ältere Referenz, die immer noch gültig ist, zumindest in CF8 und vermutlich in CF9 auch.

<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 = Eintrag & ENTRY = 935

Diese beantworten Ihre Fragen # 1 und # 4. Wie bei # 3, kann es keine Antwort darauf sein. geplante Task-Engine von Coldfusion wird nur das Laden der angegebenen URL in der vorgeschriebenen Zeit. Es gibt keinen Erfolg oder scheitern -. Es ist einfach eine HTTP-Anfrage durchführt

Hope, das hilft.

Andere Tipps

Es ist möglich, die Ergebnisse der Arbeit „Veröffentlichen“. Die Antwort der HTTP-Anforderung kann auf den Dateiserver geschrieben werden, und dass die Werte des letzten Lauf Jobs hat.

<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">

Dann können Sie das Protokoll für die Datenbank überprüfen, ob Sie wollen. Da es die Antwort von der Seite ist, können Sie sich und speichern Fehler und Warnungen auch hier.

@eric kolb ist richtig - das ist die Art und Weise ist es programmatisch zu tun. Wenn Sie mehr Kontrolle darüber, wie die Liste reagiert, versuchen Sie den folgenden Code (im Wesentlichen die gleichen, aber in cfscript):

<cfscript>
scheduledTasksArray=ArrayNew(1);
taskService=createobject('java','coldfusion.server.ServiceFactory').getCronService();
scheduledTasksArray=taskservice.listall();

Auch zu beantworten # 2 und # 3 (was ziemlich viel ist nur eine zweiteilige Frage, wenn Sie es richtig tun): Wenn die Aufgabe ausgeführt wird, senden Sie sich eine E-Mail direkt an der Spitze sagen: „Hey, ich RUNNING'M !!!!“ und dann sagen, ein anderer „Hey, ich bin fertig !!!“ am unteren Rande des Codes für die Aufgabe - könnten Sie in einem Zeitstempel hinzufügen und sagen, wenn es gestartet und gestoppt (dies funktioniert auch in einer Datenbank Anmeldung). Auch wissen, wann es nächstes ausgeführt wird, nehmen Sie nur einen Blick auf die letzten Zeit und die „Intervall“ Feld aus den Ergebnissen des Servicefactory Anruf zurückbekommen. (Wenn Sie ein weitere Erklärung müssen auf dem, was ich damit meine, fühlen Sie sich frei zu fragen.

Hope, das hilft, wenn Sie nicht herausgefunden haben, was man benötigt, um bereits

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top