2017-02-04 4 views
1

15 개의 별도 .cfm 페이지가 별도의 야간 프로세스로 예약되어 있습니다. 이 모든 것들은 한 페이지에 넣고 다른 페이지를 차례대로 포함하고 싶습니다.cfinclude를 사용하는 ColdFusion 스케줄 작업은?

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

내가 내 broweser의 URL을 ScheduleTask.cfm에 넣어하려하지만 난있어 오류 : 나는이 작업을 수행하려고 ScheduleTask.cfm에 나는 포함했다 생성 포함 내 각을

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

페이지를 엑셀에서 능가하십시오. 또한 내가 포함해야하는 블록을 잡아야하고, 그 밖의 무엇을 검사해야합니까?

또한 나는 피곤 구조체 및 루프를 사용하여이 문제를 접근하는 :

<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

스크립트를 순차적으로 실행할 수 있도록 CURL 요청 (결과 저장/API 콜백)을 사용하여 BAT 파일을 실행하는 CRON 작업을 생성하는 별도의 스케줄링 도구 (CF 프런트 엔드 포함)를 작성하여 단일 CF 오류가 전체 프로세스를 중단하지 않습니다. 이 방법은 이식 가능하며 시간 제한이 없으며 CFThread가 필요하지 않습니다. (CFSchedule 관리자의 제한으로 인해이 작업을 시작했습니다.) –

+0

@JamesMoberg 사용하는 도구의 예를 보여줄 수 있습니까? 감사. –

+0

Windows 용 nnCron LITE를 사용합니다. CF를 사용하여 일반 텍스트 CRONTAB 파일을 생성합니다. 각 작업은 1 개 이상의 웹 요청 (또는 비 웹 요청) BAT 파일을 실행합니다. 다음은 CRONTAB 및 BAT 파일의 예입니다. https://gist.github.com/JamoCA/96cd5afd12fc19513ef3c2a882a38f9b –

답변

2

적어도 두 개의 포함 된 파일에 standardSelect이라는 기능이있는 .cfm 페이지가 있거나 포함되어 있습니다. 당신은 모든 기능을 찾아 그것에 대해 뭔가를해야합니다. 당신이하는 일은 당신이 찾은 것에 대한 세부 사항에 달려 있습니다.

귀하의 일반적인 생각은 우리가 실제로하는 것입니다. 우리는 당신이 생각하지 못했을 몇 가지 세부 사항을 가지고 있습니다. <cfinclude에 확장 할 맞춤 태그가 있습니다. 당신이 생각한 try/catch를 수행 할뿐만 아니라 결과를 기록합니다. 작업이 성공적으로 실행되면 기록됩니다. 오류가 발생하면 세부 사항을 기록합니다.

하지만 기다려주세요. 해당 로그를 읽는 다른 예약 된 작업이 있습니다. 무언가가 잘못되면 어떤 일이 일어 났는지에 대한 보고서가 그것에 대해 뭔가 할 수있는 사람들에게 보내집니다. 사실, 오늘 아침에 그 보고서들 중 하나를 받았습니다.

+0

이것을 구성하는 가장 좋은 방법은 무엇입니까? 보고서 이름 - 시간 및 날짜와 같은 정보를 화면에 출력 할 각 보고서에 출력 결과가 있습니다. 또한 각 보고서를 별도의 .cfm으로 보관하거나 모든 보고서를 하나의 .cfm 파일에 보관하는 것이 좋습니다. 그게 어떤 문제를 일으킬 수 있는지, 그리고 얼마나 빠른 작업이 실행되는지에 차이가 있는지 확실하지 않습니다. –

+0

스케쥴 된 작업을 화면에 출력하는 개념은 예의 바릅니다. –

+0

보고서가 생성 된 시간과 날짜를 출력하는 경우 비정상적인 것이 표시되지 않습니다. 어쨌든 도움을 주셔서 감사합니다. –

1

간단한 방법은 하나의 cfm에서 cfhttp를 여러 번 사용하여 각 URL을 호출하는 것입니다. 연속적으로. 모든 cfhttp를 실행하는 하나의 cfm을 예약합니다.

+0

그것은 흥미로운 해결책입니다. 교차 의존성에 대해 걱정할 필요가 없습니다. –