in reply to REST API with SFTP Pooling
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.
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.
*) well, unless the limit is not on SFTP connections but in SSH connections. It is pretty easy to reuse SSH connections with something like Net::OpenSSH, and then run SFTP on top of it.