Зацикливание потока в задаче Rake - PullRequest
0 голосов
/ 28 октября 2019

Я смотрел на драгоценные камни как SideKiq и Resque, но они немного излишни для моего приложения. В настоящее время у меня есть задача rake, которая запускает бесконечный поток, который будет опрашивать API каждую минуту. Я думал о запуске этого как Cron, но мне не нравится, что мне приходится перезагружать приложение Rails каждый раз, когда мой Cron запускает мой rake task. Итак, я закончил писать код, который выглядит следующим образом:

namespace :my_task do
  desc "TODO"
  task start: :environment do
    Thread.new {
        while true
            MyClass.poll_api
            sleep(60)
        end
    }

  end
end

Это прекрасно работает, но я не знаю последствий запуска бесконечного потока, подобного этому, в задаче rake. Насколько я понимаю, Sidekiq делает примерно то же самое, загружая Rails, а затем запускает пул потоков, которые управляют задачами из очереди. Создает ли поток, подобный этому, в задаче rake какие-либо потенциальные проблемы? Я тщательно искал ответ для этой проблемы, но ничто в сети не решает его.

...