Upload the file from flex to the CFM page.  Use cfthread to fire or the
conversion.

Conversion happens in the thread and the post ( of the file ) returns back
to flex as completed.  At this point start a timer in Flex.

The thread in CF converts the file and once the conversion is complete write
the file name aswell as complete/failed ( I'll assume you put this
conversion in try/catch ) to the database.

As you mentioned earlier you don't mind polling so in flex use the timer
which checks via a remote call or webservice every 10 seconds if the entry
is in the database.  Once the entry appears the conversion is complete and
the Flex client can be informed.

Paul.

-----Original Message-----
From: Stefan Richter [mailto:[email protected]] 
Sent: Friday, February 20, 2009 10:09 AM
To: flex
Subject: Re: Offloading long running processes


Thank you,
I may have to revisit cfthread after all since cfflush is not working  
properly for me. Here's why: I am uploading a file AND returning data  
to the Flex client when the upload succeeds. If I cfflush that page I  
get the response in Flex (as expected in  
DataEvent.UPLOAD_COMPLETE_DATA and Event.COMPLETE) but the later end  
of page processing is not captured by Flex (it 'disconnects' down  
after the first flush) and any further information I'd like to send to  
the Flex app never makes it. So the response that you say stays open  
does not seem to be - maybe this is related to the upload operation  
and a normal POST would act differently, I don't know.

I am now thinking to either
1) see what cfthread can do to help
2) use cfflush as I have one and have the client poll the conversion  
status via the database

My challenge is to inform the client that the upload is done, but then  
also inform him when the conversion is done. I guess I expect too much  
trying to do this in one operation.

Any thoughts? Polling would obviously be one possible workaround.

Cheers

Stefan





On 20 Feb 2009, at 14:47, David Henry wrote:

>
> Correct, each request is a separate thread.  The problem is that the
> response for the request remains open after a cfflush.  You probably
> want to spawn a thread that runs without a request/response tied to  
> it.
> cfthread allows the request from Flash to complete, cfflush would  
> leave
> the response partially filled but still open.  If cfthread isn't an
> option then you could write a Java class to handle the threading.   
> Keep
> a reference to the object in the application scope so you can ask it
> when processing is done.
>
> <cfscript>
> //your implementation may vary
> if (StructKeyExists(application,"myFileProcObject"){
> application 
> .myFileProcObject=CreateObject("java","yourProcessingClass").init();
> }
> threadId = application.myFileProcObject.processYerFile(file);
> </cfscript>
> <cfoutput>#threadId#</cfoutput>
>
> When you want to check if the file is done yet:
>
> <cfif application.myFileProcObject.isMyFileReadyYet(threadId)>
> File is ready
> <cfelse>
> File still processing
> </cfif>
>
> When ColdFusion doesn't do what I want, I break out the Java books.
> Hope that helps.
>
> Stefan Richter wrote:
>> Apparently CF Standard only supports two concurrent threads while the
>> rest is queued, not sure how useful that will be then.
>>
>> How does it work in detail, say I have 10 people uploading a document
>> at the same time wouldn't the page thread be essentially  
>> multithreaded
>> anyway (one for each user)? If so maybe I could just use cfflush and
>> then add the conversion code afterwards. Would that essentially be  
>> the
>> same as starting a cfthread from that page?
>>
>> Regards,
>>
>> Stefan
>>
>>
>>
>
> 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: http://www.houseoffusion.com/groups/flex/message.cfm/messageid:5775
Subscription: http://www.houseoffusion.com/groups/flex/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.37

Reply via email to