Есть ли способ получить список всех запланированных задач Coldfusion, запущенных на разных веб-серверах в одной сети? - PullRequest
2 голосов
/ 07 февраля 2011

Я хочу узнать подробности запланированных задач, выполняемых на 5 или 6 веб-серверах Coldfusion, просто написав одну страницу на одном из них. Есть ли способ сделать это? Это может быть сделано путем чтения cron.xml на всех из них.

я наткнулся на следующий код

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

Этот код подходит для выяснения деталей веб-сервера, на котором он будет выполняться.

Я ищу что-то похожее на это, чтобы узнать подробности запланированных задач, выполняемых на всех веб-серверах в одной сети. Спасибо !!

Ответы [ 4 ]

2 голосов
/ 18 февраля 2011
<!--- 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>
2 голосов
/ 07 февраля 2011

Вы можете использовать тег cfschedule и разместить на каждом сервере страницу, которая выводит запланированные задачи для этого компьютера. Затем вы можете использовать HTTP-запрос к каждому серверу, чтобы выбрать задачи, за которые он отвечает, и вывести их на страницу вашего сервера мониторинга.

1 голос
/ 14 февраля 2011

Что я, вероятно, хотел бы сделать - создать на целевом сервере cfc, который бы возвращал результаты поиска запланированных задач в некоторый тип json, xml или запроса, который был бы доступен с заданными именем пользователя и паролем для получения данные с одного сервера на другой по мере необходимости ....

0 голосов
/ 10 февраля 2011

Мы позаботимся об этом, чтобы добавить строку в таблицу базы данных с URL-адресом задачи. Если у вас есть все задачи в одном каталоге, лучший способ сделать это - добавить запись базы данных в Application.cfc, используя доступные переменные CGI.

Это можно сравнить с тем, что вы ожидали запустить.

Надеюсь, это поможет!

...