2017-02-04 17 views
1

У меня есть 15 отдельных страниц .cfm, которые запланированы в отдельных ночных процессах. Все это я хотел бы разместить на одной странице и включить все остальные страницы для запуска один за другим. Я пытался сделать это, в ScheduleTask.cfm я включил:Задача планирования ColdFusion с использованием cfinclude?

<cfinclude template="page1.cfm"> 
<cfinclude template="page2.cfm"> 
<cfinclude template="page3.cfm"> 

Я пытался поставить в моем broweser URL-адрес ScheduleTask.cfm, но я получил и ошибки:

Detail The routine standardSelect has been declared twice in different templates. 
Message  Routines cannot be declared more than once. 

Каждый из моих включает в себя генерирует excel страница из cfquery. Также должен ли я попытаться захватить блок вокруг включений и что еще я должен проверять?

Также я устал подойти к этой проблеме, используя структура и цикл:

<cftry> 
    <cfset rptCFMFiles = { 
      file1 = "page1.cfm", 
      file2 = "page2.cfm", 
      file3 = "page3.cfm", 
     }> 

    <cfloop collection="#rptCFMFiles#" item="key"> 
     <cfoutput> 
      <cfinclude template="#rptCFMFiles[key]#"> 
     </cfoutput> 
    </cfloop> 

    <cfcatch> 
     <cfdump var="#cfcatch#"> 
    </cfcatch> 
</cftry> 

Те же ошибки снова показал:

Detail: The routine standardSelect has been declared twice in different templates. 
Message: Routines cannot be declared more than once. 

Если кто-то может помочь, пожалуйста, дайте мне знать.

+1

Я написал отдельный инструмент планирования (w/CF front-end) для генерации задач CRON, которые запускают файлы BAT с запросами CURL (сохранение результата с обратными вызовами API), так что скрипты могут выполняться последовательно и так, чтобы один CF ошибка не прерывает весь процесс. Этот подход переносимый, не требует тайм-аута и не требует каких-либо CFThreads. (Я начал делать это из-за ограничений в администраторе CFSchedule.) –

+0

@JamesMoberg Можете ли вы показать какой-либо пример этого инструмента, который вы используете? Благодарю. –

+0

Я использую nnCron LITE для Windows. Я использую CF для создания файла CRONTAB с открытым текстом. Каждая задача выполняет BAT-файл с 1 или более веб-запросами (или не-веб-запрос). Вот примеры файлов CRONTAB & BAT: https://gist.github.com/JamoCA/96cd5afd12fc19513ef3c2a882a38f9b –

ответ

2

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

Ваша общая идея - это то, что мы на самом деле делаем. У нас есть еще кое-какие подробности, о которых вы, возможно, и не подумали. У нас есть специальный тег для расширения на <cfinclude. Это не только попытка/уловка, о которой вы думали, но она регистрирует результаты. Если задание выполнено успешно, оно регистрирует это. Если возникает ошибка, он регистрирует детали.

Но подождите, есть еще. У нас есть другие запланированные задания, которые читают эти журналы. Если что-то пошло не так, сообщение о том, что произошло, отправляется людям, которые могут что-то с этим сделать. На самом деле, утром я получил один из этих сообщений.

+0

Есть ли у вас какой-либо пример того, как и что это лучший способ организовать это? У меня есть вывод в каждом из моих отчетов, которые будут отображаться на экране с информацией типа «Имя отчета» - время и дата. Также лучше сохранить каждый отчет в отдельном .cfm или поместить все из них в один файл .cfm. Я не уверен, может ли это вызвать какие-либо проблемы, и если есть какая-то разница в том, как быстро будет выполняться задание. –

+0

Концепция запланированного задания, выводимого на экран, необычна, вежлива. –

+0

Я не вижу, что необычно, если я выдаю время и дату создания отчета. В любом случае спасибо за помощь. –

1

Простым способом является использование cfhttp в одном cfm несколько раз для вызова каждого URL-адреса. В серийном. Вы планируете использовать один cfm, который запускает все cfhttp.

+0

Это интересное решение. Он оборачивается необходимостью беспокоиться о кросс-зависимостях –