Pendingmessages

Brian Yennie briany at qldlearning.com
Tue Mar 6 07:24:51 EST 2007


Richard,

If you're uneasy about your current workaround, here are a couple of  
ideas that might help:

1) You could use a blocking shell() command to do the uploads and  
avoid libURL for this particular task.

Example: get shell("curl -T uploadfile -u user:passwd ftp:// 
ftp.upload.com/myfile")

2) Assuming you wrap the upload in a handler, you could possibly  
track the number of uploads running and avoid running more than one  
at a time. If one is already running, another could retry in 10  
second (or whatever interval):

global numUploads
on uploadFile tFile
         if (numUploads > 0) then
            send "uploadFile tFile" to me in 10 seconds
         else
             add 1 to numUploads
             put ... into url ...
             if (success) then subtract 1 from numLoads
         end if
end if

HTH,
Brian

> Here is from our experience. I can't explain why this is happening,  
> but repeated tests show that it does.
>
> 1) Using the blocking form (put url xx into url yy), we experienced  
> that a foreground file transfer that might take 30 seconds would be  
> effected by a pendingmessage file transfer scheduled to occur  
> sometime during the time frame of that foreground transfer
>
> 2) Using the non-blocking form (libURLFTPupload or download), in  
> concert with a "wait until messages" line thereafter, would also be  
> effected by pending messages.
>
> Canceling all pending messages, then resending them after the  
> transfers, helped a great deal. Keep in mind all of these transfers  
> are occurring under strained wireless conditions outdoors over a  
> distance of up to 500 feet, with a signal that can drop briefly at  
> any time. We have to structure all of our transfers with  
> considerable robustness to repeat the transfer over and over again  
> until it is successful.
>
> We've also discovered that the built-in Rev file transferring  
> methods (both blocking and non-blocking) cannot simply be  
> immediately repeated if one fails during a transfer attempt... at  
> least not with Rumpus ftp server software and OSX. The server  
> (under its default settings) rejects subsequent attempts unless we  
> unload the url, send a QUIT command, and wait some period of time  
> before starting the next attempt. We're still trying to come up  
> with a reliable approach to guarantee any downloads or uploads work  
> every time, even if it takes five attempts.
>
> Richard
>
>
> On Mar 5, 2007, at 10:46 AM, Dave Cragg wrote:
>
>>
>> On 5 Mar 2007, at 16:25, Richard Gaskin wrote:
>>
>>>
>>> There's a blocking form for uploading and downloading available  
>>> in libURL, and in the last several versions includes callbacks so  
>>> one can update a progress indicator or do other minor  
>>> housekeeping.  Would that help your situation?
>>
>> I haven't quite grasped Richard's problem of the pendingMessages.  
>> But I doubt it would make a difference whether using "blocking" or  
>> non-blocking url routines. The so-called blocking routines are  
>> only "script-blocking". i.e. they block the currently executing  
>> handler, but will allow other asynchronous activity. (For example,  
>> clicking on an active button during a download, or presumably  
>> executing anything put on the pendingMessages queue before the  
>> "blocking" routine was called.)
>>
>> Generally, anything on the pendingMessages queue will execute  
>> during an FTP file transfer, if it's due to be run at that time.  
>> Depending on the message, it might interfere with the transfer.  
>> For example, a long repeat that exceeds the socketTimeout interval.
>>
>> Cheers
>> Dave
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your  
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>




More information about the use-livecode mailing list