Единственный способ остановить произвольный фрагмент кода - запустить его в отдельном потоке, а затем завершить через заданный промежуток времени. Это можно сделать, вызвав отдельную страницу с установленным таймаутом запроса или используя cfthread.
Например, с thread ... (Обратите внимание .... как указал Алекс, вы можете использовать тайм-аут для cfthread)
<cfthread action="run" name="runForLimitedTime">
... code, call to function, etc ...
</cfthread>
<cfset sleep(5000) />
<cfif cfthread.runForLimitedTime.status eq "COMPLETED">
<cfthread action="join" />
<cfelse>
<cfthread action="terminate" name="runForLimitedTime" />
</cfif>
В качестве альтернативы с отдельной страницей ...
<!--- calling page --->
<cfset error = false />
<cftry>
<cfhttp url="pageSetupForSpecificCall.cfm?timeout=5" throwonerror="true" />
<cfcatch>
<cfset error = true />
</cfcatch>
</cftry>
<cfif error>
something
<cfelse>
something else
</cfif>
<!--- pageSetupForSpecificCall.cfm --->
<cfsetting requesttimeout="#url.timeout#" />
...do things...