software Ruby bot xmpp4r
В существующем виде, длительная операция обработки сообщения блокирует message_callback, новые сообщения принимаются (??) и обрабатываются. Ответы возвращаются пачкой, сразу после освобождения.
Нужно разделить процессы приёма, обработки и возврата ответов по разным потокам. Обработчики можно (нужно) запускать параллельно.
message_callback принимает и складывает во входную очередь, выбираем из входной очереди и запускаем обработчик, ответ класть в выходную очередь или сразу возвращать??
Наблюдаются пробелы в понимании областей видимости объектов.