【发布时间】:2014-12-11 06:39:23
【问题描述】:
我有一个检查文件日期的函数。如果文件大于 60 秒,则应运行查询并创建一个新文件。该查询需要 60 秒才能运行。
当它没有被包裹在 CFTHREAD 中时,这个过程可以完美地工作。当使用 CFTHREAD 时,似乎什么也没有发生。我没有错误。我期望看到的是正在制作一个新文件。我从未见过那个新文件。
我应该在哪里查找错误?我错过了什么?为什么 CFTHREAD 不起作用?
<!--- GET CATEGORIES --->
<cffunction name="getCategories" access="remote">
<cfscript>
LOCAL.MaxFileAge = 60;
LOCAL.MaxFileUnits = 's';
// THE FILE
LOCAL.TheFileDaily = "#VARIABLES.JSDir#\#VARIABLES.DayMonth#-categories.json";
// THE FILE DOES NOT EXIST
if (fileExists(LOCAL.TheFileDaily) == false) {
LOCAL.MakeNewFile = true;
// THE FILE EXISTS
} else {
// GET THE DATE OF THE FILE
LOCAL.LastModified = getFileInfo(LOCAL.TheFileDaily).LastModified;
// GET FILE AGE
LOCAL.FileAge = dateDiff(LOCAL.MaxFileUnits, LOCAL.LastModified, now());
// FILE IS OLD
if (LOCAL.FileAge > LOCAL.MaxFileAge) {
LOCAL.MakeNewFile = true;
} else {
LOCAL.MakeNewFile = false;
}
}
</cfscript>
<cfif LOCAL.MakeNewFile eq true>
<cfthread action="run" priority="HIGH">
<cfquery name="Q">
SELECT Stuff
FROM Tables
</cfquery>
<!--- MAKE THE DAILY FILE --->
<cffile action="write" file="#LOCAL.TheFileDaily#" output="#serializeJSON(Q)#">
</cfthread>
</cfif>
</cffunction>
【问题讨论】:
-
您检查日志是否有错误?我怀疑不是。
-
你知道我检查了 application.log 文件。我没有看到任何错误。即使我故意中断查询,如果它包含在 CFTHREAD 中,也不会出现错误。
-
所有其他日志呢?就像异常日志一样。错误日志。甚至是输出日志!
标签: coldfusion cfthread