Pourquoi je reçois le niveau de la pile trop profond tout en déclenchant un travail en utilisant resque statut?
-
29-09-2019 - |
Question
Voici la trace de la pile qui apparaît sur l'interface resque-web: http://gist.github.com/ 396893
Là, vous pouvez vérifier certaines versions de pierres précieuses que j'utilisais.
Maintenant, je l'ai fait quelques mises à jour en essayant de résoudre le problème, voici les versions actuelles pierres précieuses:
Redis (2.0.3)
Redis-espace de noms (0.5.0)
redisk (0.2.1)
resque (1.9.5)
resque-programmateur (1.9.2)
Resque-état (0.1.4)
J'ai aussi écrit un travailleur très simple à éliminer toute erreur de programmation de ma part, mais aussi sans succès. Le code de travail de test est (bien que le bogue se produit avec un code à l'aide resque statut J'ai essayé):
class SimpleStatusWorker < Resque::JobWithStatus
def perform
60.times do |i|
sleep 1
at(i,60,"At #{num} of #{total}")
end
end
end
(Le initialiseur approprié est chargé dans des rails d'initialisation de l'environnement).
La solution
Non, ce n'est pas sur IIS. Il est à propos de Vlad. Vlad définit une méthode "get" par eval sur rake_remote_task.rb (ligne ~ 12). Cela crée une méthode « get » dans le contexte de l'objet. Puisque la méthode Redis « get » n'est pas défini (il est appelé par method_missing) il exécute la méthode Vlad. Rechercher:
eval "get def \ n puts 'yo' \ n end"
classeFoo; fin
Foo.new.get
=> yo
Bizarre est pas?
Autres conseils
Peut-être quelque chose avec IIS config?