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@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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to