Often times you want the server to pause execution of a page, or go to sleep for a short while. You may be waiting for a file to be written to the file system etc.
You can do achieve this in the following fashion:
<cfset createObject('java', 'java.lang.Thread').sleep(5000) />
The example above makes the server call “sleep” for 5 seconds.
Ryan Duckworth states:
“A java thread (which ColdFusion code is converted to) is doing a NOP (no operation) procedure during a java Sleep command which causes no inefficiency. The multi-processing nature of the CPU handles this functionality for you and will use those CPU cycles with other requests during the sleep.”
Note that I usually have this in a Utility component with lots of functions I can call when needed. For example:
<cffunction name="sleep" access="public" output="false" returntype="void" hint="Leverages Java's sleep() function">
<cfargument name="timeToSleep" type="numeric" required="true" />
<cfscript>
createObject("java", "java.lang.Thread").sleep(arguments.timeToSleep); //sleep time in milliseconds
return;
</cfscript>
</cffunction>
- So then I can call application.utility.sleep(1000);
:)