Я не уверен, правильно ли я это делаю, но вот мой сценарий: мне нужно создать поток для выполнения некоторого вызова API и продолжить обычные операции, пока выполняется вызов API. Эта часть в порядке. Проблема возникает, когда я хочу присоединиться обратно. В настоящее время я создаю поток в другом модуле и хочу присоединиться обратно в другом модуле. Поэтому я не могу использовать ссылку на созданный ранее поток.
Чтобы преодолеть это, я сделал это: Thread.current[:ref_to_new_thread] = Thread.new { API CALL }
Наконец, я присоединяюсь к другому модулю, используя - Thread.current[:ref_to_new_thread].join
Это правильный путь? или есть лучший способ.
Минимальный воспроизводимый пример:
Файл 1:
module A
module Aa
def my_method
#some actions
Thread.current[:ref_to_new_thread] = Thread.new { API CALL }
#some actions
end
end
end
Файл 2:
module B
module Bb
def my_second_method
#some actions
Thread.current[:ref_to_new_thread].join
Thread.current[:ref_to_new_thread] = nil
end
end
end
Я новичок до ruby на рельсах, поэтому мои извинения.