Почему я слишком глубоко получаю уровень стека, вызывая работу, используя статус Resque?
-
29-09-2019 - |
Вопрос
Вот трассировка стека, которая появляется на интерфейсе Resque-Web: http://gist.github.com/396893
Там вы можете проверить некоторые версии GEM, которые я использовал.
Теперь я сделал несколько обновлений, пытаясь решить проблему, вот текущие версии GEM:
Redis (2.0.3)
Redis-inamespace (0,5,0)
Изобрести (0,2,1)
Resque (1.9.5)
Resque-Scheduler (1.9.2)
Resque-Status (0,1,4)
Я также написал очень простого работника, чтобы отказаться от любых ошибок программирования с моей стороны, но также и без какого -либо успеха. Код тестового работника есть (хотя ошибка возникает с любым кодом с использованием Resque-Status, который я пробовал):
class SimpleStatusWorker < Resque::JobWithStatus
def perform
60.times do |i|
sleep 1
at(i,60,"At #{num} of #{total}")
end
end
end
(Соответствующий инициализатор загружается в инициализацию среды Rails).
Решение
Нет, дело не в IIS. Это о Владе. VLAD определяет метод «получить» по eval на rafle_remote_task.rb (строка ~ 12). Это создает метод «получить» в контексте объекта. Поскольку метод Redis "Get" не определен (он вызывается методом_missing), он запускает метод VLAD. Смотреть:
Eval "def Get n ставит 'y' n end"
класс foo; конец
Foo.new.get
=> yo
Странно?
Другие советы
Может что -то с конфигурацией IIS?