Петля Rails Runner повторяется - PullRequest
0 голосов
/ 02 ноября 2019

Я запускаю скрипт ruby ​​с rails runner. По сути, скрипт перебирает трехбуквенные поисковые термины, выполняет несколько запросов GET по каждому поисковому запросу и условно фиксирует базу данных. См. Базовую схему ниже.


[*('a'..'z')].each do |first_letter|
  [*('a'..'z')].each do |second_letter|
    [*('a'..'z')].each do |third_letter|
      search_term = first_letter + second_letter + third_letter
      puts search_term

      # ...
      # Some get requests, database saves, etc
    end
  end
end

Запуск скрипта с rails runner работает совершенно нормально ... какое-то время. В какой-то момент он как-то снова запускает цикл параллельно. Это puts начинает распечатывать:

aga
agb
agc
agd
agd
age
age
agf
agf
...

Чем дольше я его оставляю, тем больше оно начинает повторяться. Вскоре цикл запускается в 4 параллельных экземплярах. В этот момент я обычно останавливаю это, потому что логически для меня не имеет смысла, чтобы этот цикл вдруг решил несколько раз запустить себя в параллельном режиме и увеличить параллельные прогоны со временем.

Есть ли что-тоо рельсе бегуна, которого я не понимаю?

...