使用cfinclude的ColdFusion计划任务?

时间:2017-02-04 17:25:16

标签: coldfusion scheduled-tasks coldfusion-9

我有15个单独的.cfm页面,这些页面在不同的夜间进程中安排。所有这些我想放在一个页面中,并包括所有其他页面一个接一个地运行。我尝试这样做,在ScheduleTask.cfm中我已经包括:

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

我试图把我的浏览器url放入ScheduleTask.cfm,但我得到了错误:

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

我的每个包含都会从cfquery生成excel页面。我是否应该试着围绕包括阻止我应该检查什么?

我也厌倦了使用struct和循环来解决这个问题:

<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.

如果有人可以提供帮助,请告诉我。

2 个答案:

答案 0 :(得分:2)

您的具体错误是至少有两个包含的文件具有或包含带有名为standardSelect的函数的.cfm页面。你必须找到所有这些功能并做一些事情。你做什么取决于你发现的细节。

你的一般想法是我们实际做的事情。我们有一些您可能没有想过的细节。我们在<cfinclude上展开了自定义标记。它不仅可以尝试/捕获,您可以想到它,但它会记录结果。如果作业成功执行,则会记录该作业。如果发生错误,则会记录详细信息。

但等等,还有更多。我们有其他预定的工作来读取这些日志。如果出现问题,会向可以对此采取行动的人员发送报告。事实上,今天早上我收到了其中一份报告。

答案 1 :(得分:1)

一种简单的方法是在一个cfm中多次使用cfhttp来调用每个URL。连载。你安排了一个运行所有cfhttp的cfm。