Я начинаю тему в контроллере и хочу перенаправить пользователя сразу после этого.Ruby thread dies после перенаправления
class Profile::GeneralController < ProfileController
def update
startTheThread(profile)
#sleep(5)
redirect_to 'selection_controller'
end
end
class ProfileController < ApplicationController
def startTheThread(profile = nil)
$collector_threads[current_user.id][sector] = Thread.new {
Thread.current['collecting_status'] = { a: 1, c: 0, c_id: -1, r: false }
start_threaded_collector(sector)
}
end
end
Когда я говорю контроллер спать на - скажем - 5 секунд, нить заканчивается, как предполагалось.
Поток мертв, как только пользователь переходит на другую страницу - почему это так и как я могу поддерживать потоки живого между контроллерами.
Вы используете это на многопоточном сервере? (не webrick) – digicazter
Я бегу «тонким» как webserver – dheil
Вы делаете что-то очень неправильно. Если вам нужна какая-то асинхронная обработка, вы должны использовать ActiveJob, Sidekiq или другую очередь заданий. – meagar