Guidance for how long to spend in an IQHandler

I have a plugin that implements a IQHandler and things work pretty well.

To implement several new requests I need to handle requires that I make calls out to another server. This may be quick but I must assume that it coudl take 10 seconds to get a reply or timeout. It is not clear how long I can spend in an IQHandler. If each request comes on a separate thread then I could consider blocking while I wait for a request to another server to complete and then return my “replyPacket”.

I could also just acknowldege the request, spawn my own thread, do my request and then send a separate IQ to the client when my plugin gets the answer.

I could not find anything that suggested which model to use. Any guidance would be appreciated.

Thanks

Ken

A second part to this question. Are calls to handleIQ processed one at a time or can handleIQ be called on multiple threads?

Thanks

Ken