Почему я получаю слишком большой уровень стека при запуске задания с использованием resque-status?
Вот трассировка стека, которая появляется в веб-интерфейсе resque: http://gist.github.com/396893
Там вы можете проверить некоторые версии драгоценных камней, которые я использовал.
Сейчас я сделал несколько обновлений, пытаясь решить проблему, вот текущие версии гемов:
Redis (2.0.3)
redis-namespace (0.5.0)
Redisk (0.2.1)
Resque (1.9.5)
Resque-планировщик (1.9.2)
Resque-статус (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).
2 ответа
Нет, дело не в IIS. Это о Владе. Влад определяет метод "get" с помощью eval на rake_remote_task.rb (строка ~12). Это создает метод "get" в контексте Object. Так как метод get в Redis не определен (он вызывается методом method_missing), он запускает метод Vlad. Посмотрите:
eval "def get \ n ставит 'yo'\n end"
класс Foo; конец
Foo.new.get
=> йо
Странно не так ли?