Оптоволоконный локальный вариант использования - PullRequest
0 голосов
/ 27 февраля 2020

Я не уверен, правильно ли я это делаю, но вот мой сценарий: мне нужно создать поток для выполнения некоторого вызова 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 на рельсах, поэтому мои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...