Domanda

Stiamo cercando di costruire un cruscotto per il nostro lavoro cron ---- CF, Java, SQL Server, ecc in modo che possiamo vedere quando le cose sono stati eseguiti lo scorso, quello che il risultato è stato, e quando saranno programmati a eseguire successiva.

C'è un modo con l'API CFAdmin o qualche trucco non documentato <cfschedule> per ottenere un elenco di:

  1. Quali compiti sono in programma?
  2. Che l'ultima fase di esecuzione è stato?
  3. Ti è successo?
  4. Quando è programmato per eseguire di nuovo?

Siamo attualmente in CF8, ma sarà l'aggiornamento a CF9 nel giro di poche settimane.

È stato utile?

Soluzione

Ho fatto una piccola ricerca in questo per voi. Ho trovato un po 'più vecchio di riferimento che è ancora valida, almeno in CF8 e presumibilmente in CF9 pure.

<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

Questo risponde alle vostre domande # 1 e # 4. Per quanto riguarda i 3 #, non ci può essere risposta a questa. motore di un'attività pianificata di ColdFusion è solo caricando l'URL specificato al momento prescritto. Non v'è alcun successo o negativo -. Esegue semplicemente una richiesta HTTP

Spero che questo aiuti.

Altri suggerimenti

E 'possibile "Pubblica" i risultati del lavoro. La risposta dalla richiesta HTTP può essere scritto al file server, e che avrà i valori dell'ultimo lavoro run.

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

Quindi è possibile verificare il registro in base al database se si voleva. Dal momento che è la risposta dalla pagina, è possibile ottenere e memorizzare gli errori e gli avvisi anche qui.

@eric Kolb è giusto - che è il modo per farlo a livello di codice. Se si desidera un maggiore controllo su come la lista reagisce, provare il seguente codice (essenzialmente lo stesso, ma in cfscript):

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

Inoltre, per rispondere a # 2 e # 3 (che è praticamente solo una in due parti domanda se lo fate a destra): Quando l'attività viene eseguita, inviare anche tu una a destra e-mail in alto che dice "Hey! Io corro !!!!" e poi un altro dicendo "HEY! Ho finito !!!" in fondo il codice per l'operazione - che si potrebbe aggiungere un timestamp anche per dire quando è avviato e arrestato (login questo in un database di Works troppo). Inoltre, per sapere quando verrà eseguito il prossimo, basta dare un'occhiata all'ultimo campo "Intervallo" ottenuto di nuovo dai risultati della chiamata ServiceFactory tempo E. (Se avete bisogno di ulteriori spiegazioni su quello che voglio dire con questo, non esitate a chiedere.

Spero che questo aiuti se non hai capito ciò che si deve già

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top