note
salva
Sharing SFTP connections between processes or threads is not a good idea. Too complicated and too difficult to get it right*.
<p>A simplest approach would be to have 5 workers, every one with a dedicated SFTP connection, listen for requests on the same socket/pipe/queue/whatever. When a new request arrives, the first one able to catch it handles it.
<p>On the part of the code where it waits for new requests, a timeout can be set in order to send the dummy command if nothing happens for a while.
<p>*) well, unless the limit is not on SFTP connections but in SSH connections. It is pretty easy to reuse SSH connections with something like [metamod://Net::OpenSSH], and then run SFTP on top of it.
11123604
11123604