RoR Темы исчезают после сна? - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблема с Threads в рельсах 4. Я хочу открыть метод в новом потоке, который не использует ActiveRecord. Метод просто спит в течение нескольких минут, а затем просто запускает запрос.

Все работает нормально, но иногда некоторые из этих потоков запускаются после сна. Его в основном, когда спам, как 20 из них, но иногда его, когда их мало. И в 3-м случае, даже когда я спам их, все в порядке. Я пробовал с выводами в потоках перед сном и после, и до того, как всегда выводится сообщение сна, что означает, что поток есть, но после сна этого не происходит в тех случаях, когда не удается отправить запрос POST.

sth = "array of ActiveRecord objects, like 10 max"

sth.each do |s|
  ..some active record create new object..unrelated..

  Thread.new { custom_method(s.id) }
end

def custom_method(id)
 Rails.logger.info "BEFORE SLEEP FOR #{id}"
 sleep(180)     
 Thread.current.run # this is something that I just tried if it will help

 ..call post method to send "id" to some route, nothing special...

 Thread.current.exit # also added to see if it will help
end

Таким образом, в основном, каждый раз перед тем, как выводится сообщение журнала сна, но после него нет, и этот запрос POST не запускается в этих случаях. Есть идеи, почему это происходит так случайно?

Спасибо

...