Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

cfthread and cfhttp

Guest
Apr 09, 2010 Apr 09, 2010

Whats the default timeout period for a fire and forget cfthread in cf9? from my tests and monitoring the server, the threads gets killed after it hits the request timeout period mentioned in the admin.

Is this the expected behaviour?

I need to know this since I have this project where I need to post easily more than 1gb file over cfhttp, Whenever I use the cfhttp inside a thread, the cfhttp timeouts aren't respected any more but only the threads timeout period from admin.

thank u for ur help

Here are the codes

timer.cfm

<cfsetting requesttimeout="10000000000000">
<cfthread action="sleep" duration="600000">
</cfthread>

index.cfm


<html>
<body>

     <p>threadcfbookclub</p>
     <cfthread action="run" name="testhread_#now()#">
          
          <cftry>
               <cfhttp timeout="60" throwonerror="true"   url="http://localhost/thread/timer.cfm"
           />          
          <cfcatch type="any">
               <cfrethrow>
          </cfcatch>
          </cftry>

          <!---<cfthrow type='test' message="test">--->
     </cfthread>
</body>
</html>

app.cfc

component  output="false"
{
     this.name = "thread";
}

Thx

Al

2.0K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 09, 2010 Apr 09, 2010
LATEST
timer.cfm
<cfsetting requesttimeout="10000000000000">
<cfthread action="sleep" duration="600000">
</cfthread>
app.cfc
component  output="false"
{
     this.name = "thread";
}

I don't see the point of all that. They play no part in the story you've told.

Whats the default timeout period for a fire and forget cfthread in
cf9? from my tests and monitoring the server, the threads gets killed
after it hits the request timeout period mentioned in the admin.

Is this the
expected behaviour?

Yes, that's the expected behaviour. The timeout attribute only applies to the join action of threads. In your case, the page thread is the main thread, but you haven't joined it to the cfhttp thread. So the timeout settings will be those of main page alone.

The cfhttp thread will indeed be fired and forgotten.  In case of problems, you should be looking at the spawned thread for clues. To start with, though it may not be the cause, the value now() has spaces and so is a poor thread name.

Secondly, the cfhttp timeout value of 60 seconds is too small for your requirements. Leave out the timeout attribute altogether. The thread would then wait till the cfhttp tag finishes.

Thirdly, the spawned thread has no page context, so what's with all the try-catch and stuff? Leave it out.

Your code could be as simple as:

<cfset threadName = "testhread_" & dateformat(now(),"yyyy_mm_dd") & timeformat(now(),"_HH_MM_SS")>

<cfthread action="run" name="#threadName#">        
       <cfhttp url="http://localhost/thread/timer.cfm"/>         
</cfthread>

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources