일부 파일을 ColdFusion 웹 사이트/응용 프로그램에 배포 한 후 오늘 아침에 문제가 발생했습니다.배포의 일부로 ColdFusion 템플릿 캐시를 지우려면 어떻게합니까?
기존 CFC를 새로운 코드로 업데이트했습니다.
원래 MyObject.cfc :
<cfscript>
VARIABLES.MyParam = "";
</cfscript>
<cffunction name="init" returntype="MyObject" output="false">
<cfargument name="MyParam" type="String" required="true" />
<cfscript>
VARIABLES.MyParam = ARGUMENTS.MyParam;
return THIS;
</cfscript>
</cffunction>
새로운 MyObject.cfc : 객체
<cfscript>
VARIABLES.MyParam = "";
</cfscript>
<cffunction name="init" returntype="MyObject" output="false">
<cfargument name="MyParam" type="String" required="true" />
<cfscript>
setMyParam(ARGUMENTS.MyParam);
return THIS;
</cfscript>
</cffunction>
<cffunction name="setMyParam" output="false" returntype="Void">
<cfargument name="MyParam" type="String" required="true" />
<cfset VARIABLES.MyParam = Trim(ARGUMENTS.MyParam) />
</cffunction>
<cffunction name="getMyParam" output="false" returntype="String">
<cfreturn VARIABLES.MyParam />
</cffunction>
모든 시간 CFC는 인스턴스화 된 객체를 반환하는 초기화() 메소드가 있습니다 init()라는이 CFC가 확장되어 예외가 발생했습니다.
"init 함수에서 반환 된 값의 형식이 MyObject가 아닙니다."
이 변경 사항이 배포 된 다른 환경에서는이 문제가 발생하지 않았습니다 - 프로덕션에서만 발생했습니다.
유일한 문제는 ColdFusion Administrator에서 템플릿 캐시를 지우는 것이 었습니다.
그래서 앞으로 파일이 배포되지 않도록 자동으로 템플릿 캐시를 지우는 방법을 찾고 있습니다.
참고로 현재 Tortoise SVN을 사용하여 파일을 배포합니다.
이 기능은 CF7로까지 거슬러 자리에있었습니다<cfscript>
// Login is always required (if the administrator password
// is enabled in the ColdFusion Administrator).
// This example uses two lines of code.
adminObj = createObject("component","cfide.adminapi.administrator");
adminObj.login("admin");
// Instantiate the runtime object.
myObj = createObject("component","cfide.adminapi.runtime");
// clear cache
myObj.clearTrustedCache();
// Stop and restart trusted cache. However, only the clearTrustedCache function needs to be called.
myObj.setCacheProperty("TrustedCache", 0);
myObj.setCacheProperty("TrustedCache", 1);
</cfscript>
(: 당신의 초기화에
참고 : 당신이 당신의 관리자에서 활성화 해당 옵션이있는 경우
은 또한, 구성 요소 캐시를 삭제 추천 할 것입니다. 성능은이 솔루션 (또는 모든 자동화 된 솔루션)의 고려 사항 일 수 있습니다. – nosilleg
더 나은 결과를 얻으려면 실제로 캐시를 지우지 말고 단순히 캐시를 중지하거나 시작하십시오. 나는 특히 일반적인 coldfusion 프레임 워크를 사용하여 무거운 응용 프로그램으로 캐시를 지우면 인스턴스 인스턴스가 멈추는 것을 발견했습니다. 중지/시작은 서버를 종료하지 않고 동일한 효과를 갖는 것으로 보입니다. 그렇지 않으면 숀의 반응은 제가 제안 할 것입니다. –