19

우리는 cron 작업을위한 대시 보드를 만들려고합니다 .-- CF, Java, SQLServer 등. 마지막으로 실행 된 시점, 결과 및 실행 예정 시점을 확인할 수 있습니다. 다음 것. 어떤 작업ColdFusion에서 예약 된 작업 목록과 마지막 실행 결과를 얻는 방법?

  1. 을 예정 :

    의 목록을 얻을 수있는 CFAdmin API 또는 일부 문서화되지 않은 <cfschedule> 트릭과 방법이 있나요?

  2. 마지막 실행 시간은 무엇입니까?
  3. 성공 했습니까?
  4. 다시 실행할 일정은 언제입니까?

현재 CF8을 사용하고 있지만 몇 주 이내에 CF9로 업그레이드 할 예정입니다.

+2

위대한 질문 필요한 것을 파악하지 않은 경우이 도움이됩니다. 내가 같은를 얻을 싶어요 정보. – Jason

+0

대시 보드가 riaforge에 도착할 가능성이 있습니까? 그렇습니다. – Antony

답변

28

나는 이것을 당신을 위해 조금 연구했습니다. 나는 적어도 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 요청을 수행합니다.

희망이 도움이됩니다.

+0

니스, +1. '를 선택 하겠지만, 읽기. – Tomalak

+0

굉장.정확히 내가 성취하려고 시도한 것. 나는이 작업에 대한 실행/실패 상태를 유지할 수있는 db를 만들 것이라고 생각합니다. 시작시 '실행 중'으로 설정하고 완료 될 때 '성공'으로 설정하십시오. –

+2

Railo 3+ 및 CF10 +는 ** list ** 액션을 제공합니다 :'''''' – modius

1

작업 결과를 "게시"할 수 있습니다. 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"> 

원하는 경우 로그를 데이터베이스에서 확인할 수 있습니다. 페이지의 응답이므로 여기에서 오류 및 경고를 가져 와서 저장할 수 있습니다.

0

@eric kolb가 맞습니다. 프로그래밍 방식으로이를 수행하는 방법입니다. 이 목록의 반응을보다 효율적으로 관리를 원한다면, 다음의 코드 시도 (본질적으로 동일하지만, CFScript의에서) :

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

, 거의이다 # 2, # 3 (대답 단지 두 부분으로 구성된 질문 하나만 쓰면됩니다.) 작업이 실행되면 "HEY! I 'm RUNNING !!!!"이라는 메시지가 맨 위에 표시됩니다. 그 다음 또 다른 말하고있는 "이봐! 나는 끝났다! 작업의 코드 맨 아래에 타임 스탬프를 추가하여 시작 및 중지 시점을 알 수 있습니다 (데이터베이스에 기록하는 것도 마찬가지 임). 또한 언제 실행될지를 알기 위해서는 ServiceFactory 호출의 결과에서 마지막으로 얻은 시간 간격과 "interval"필드를 살펴보십시오. 당신은 내가이 무슨 뜻인지에 대한 자세한 설명이 필요한 경우 (문의 주시기 바랍니다.

희망을 당신이에 이미