2011-02-07 2 views
2

5 개 또는 6 개의 Coldfusion 웹 서버에서 실행되는 예약 된 작업의 세부 정보를 하나의 페이지에 쓰는 방법으로 알아 보겠습니다. 그것을 할 방법이 있습니까? 모두 cron.xml을 읽으면됩니다. 같은 네트워크에있는 다른 웹 서버에서 실행중인 모든 coldfusion 예약 작업 목록을 가져 오는 방법이 있습니까?

나는 다음 코드에서 온

<cflock name="alltasks" type="exclusive" timeout="10"> 
<cfscript> 
    factory = CreateObject("java","coldfusion.server.ServiceFactory"); 
    cron_service = factory.CronService; 
    services = cron_service.listALL(); 
</cfscript> 

이 코드가 실행됩니다되는 웹 서버에 대한 세부 사항을 찾는 것이 좋다.

나는 이와 비슷한 것을 찾고 있는데, 그것은 동일한 네트워크의 모든 웹 서버에서 실행되는 예약 된 작업에 대한 세부 정보를 얻을 것이다. 감사!!

답변

2

cfschedule tag을 사용하고 해당 컴퓨터에 대해 예약 된 작업을 출력하는 각 서버에 페이지를 배치 할 수 있습니다. 그런 다음 각 서버에 대한 HTTP 요청을 사용하여 담당 서버의 작업을 선택하여 모니터링 서버의 페이지로 출력 할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 방금 모든 웹 서버에 가서 neo-cron.xml을 읽었습니다. 나는 서버 위치가 나에게 알려지지 않은 경우에 그것을 당신의 방법대로했을 것입니다 :) –

0

우리가 처리하는 방식은 작업의 URL이있는 데이터베이스 테이블에 행을 추가하는 것입니다. 하나의 디렉토리에 모든 작업이있는 경우이를 수행하는 가장 좋은 방법은 사용 가능한 CGI 변수를 사용하여 Application.cfc에 데이터베이스 로깅을 추가하는 것입니다.

그러면 예상했던 것과 비교하여 확인할 수 있습니다.

희망 하시겠습니까?

1

목표 서버에서 cfc를 만들면 예약 된 작업 조회 결과가 json, xml 또는 설정 사용자 이름 &과 함께 사용할 수있는 쿼리로 반환됩니다. 필요에 따라 1 서버에서 다른 서버로 데이터를 가져옵니다 ....

2
<!--- ServerList contains all server's(7,8,9) ipaddress,,, ---> 

    <cfset serverList = 'a.b.c.d, p.q.r.s, ....... , u.v.w.x'> 
    <cfoutput> 

     Searched In: #serverList#<br> 

     <Cfloop list="#serverList#" index="s"> 
      <cfif FileExists('\\#s#\C$\ColdFusion8\lib\neo-cron.xml')> 
       <cfset pathToFindNeo = '\\#s#\C$\ColdFusion8\lib\neo-cron.xml'> 
      <cfelseif FileExists('\\#s#\C$\CFusionMX7\lib\neo-cron.xml') > 
       <cfset pathToFindNeo = '\\#s#\C$\CFusionMX7\lib\neo-cron.xml'> 
      <cfelseif FileExists('\\#s#\C$\ColdFusion9\lib\neo-cron.xml')> 
       <cfset pathToFindNeo = '\\#s#\C$\ColdFusion9\lib\neo-cron.xml'> 
      <cfelseif FileExists('\\#s#\ColdFusion\lib\neo-cron.xml')> 
       <cfset pathToFindNeo = '\\#s#\ColdFusion\lib\neo-cron.xml'> 
      <cfelse> 
       <cfset pathToFindNeo = 0>  
      </cfif> 
      <h3>#s# [#pathToFindNeo#]</h3> 

      <!--- Get the scheduler xml file. It's stored as WDDX in CFroot dir---> 
      <cfif pathToFindNeo neq 0> 
       <cffile action="Read" file="#pathToFindNeo#" variable="TaskXML"> 

       <!--- Convert the WDDX to CFML - and array of structs ---> 
       <cfwddx action="WDDX2CFML" input="#TaskXML#" output="GetTasks"> 

       <table border="1" width="100%"> 
        <tr> 
         <td><strong>Name</strong></td> 
         <Td><strong>URL</strong></Td> 
         <td><strong>Interval</strong></td> 
         <Td><strong>Disabled</strong></Td> 
         <td><strong>Start Date</strong></td> 
         <td><strong>Start Time</strong></td> 
         <td><strong>End Time</strong></td> 
         <td><strong>Operation</strong></td> 
        </tr> 
        <cfloop collection="#GetTasks[1]#" item="key"> 
         <cfif GetTasks[1][key]['disabled'] eq 'NO'> 
          <tr> 
         <cfelse> 
          <tr style="background-color:##CCC">   
         </cfif> 
          <td>#key#</td> 
          <td>#GetTasks[1][key]['url']#</td> 
          <td>#GetTasks[1][key]['interval']#</td> 
          <td>#GetTasks[1][key]['disabled']#</td> 
          <td>#GetTasks[1][key]['start_date']#</td> 
          <td>#GetTasks[1][key]['start_time']#</td> 
          <td> 
           <cfif StructKeyExists(GetTasks[1][key], "end_time")> 
            #GetTasks[1][key]['end_time']# 
           <cfelse> 
            - 
           </Cfif> 
          </td> 
          <td>#GetTasks[1][key]['operation']#</td> 
         </tr> 
        </cfloop> 
       </TABLE> 
      <CFELSE> 
       FILE 'neo-cron.xml' NOT FOUND  
      </cfif>   
     </Cfloop> 

    </cfoutput> 
관련 문제