Самый простой способ - создать новый поток для обработки фоновой задачи, а затем переключиться обратно в основной поток, прежде чем делать что-либо, связанное с EventMachine.Вы можете сделать это с помощью метода defer
:
def do_something
EventMachine.defer do
do_long_process
end
end
Имейте в виду, что части приложения, к которым обращается ваш блок, должны быть поточно-ориентированными, и вам необходимо обязательно вернуться косновной поток с чем-то вроде next_tick
, чтобы гарантировать, что все операции EventMachine выполняются в правильном потоке.