Recentemente, tenho trabalhado na integração do Resque como um processador de tarefas em segundo plano em nossa plataforma.
Infelizmente, a plataforma de desenvolvimento da minha equipe é o Windows, que nem sempre funciona bem com ferramentas de última geração ou Ruby. Usando http://rubyinstaller.org e Dave Hoover’s “Do YOU know Resque?” , Consegui fazer o Resque funcionar com bastante facilidade. MAS, o Resque-web não funcionava. Continuei terminando com um erro Vegas dizendo
gem_original_require' no such file to load win32/process
e as primeiras horas de pesquisa no Google não me deram resultados.
Sendo um pouco novo em Ruby, não ficou imediatamente óbvio qual era o problema. Presumi que, quando instalei a gem Resque, todas as dependências possíveis viriam com ela. Acontece que não foi o caso.
No Windows, Vegas ^ 1 ^ depende de uma gema chamada win32-process que não foi instalada automaticamente. Se eu estivesse mais familiarizado com os stacktraces do Ruby, (espero) teria visto que o Ruby estava me dizendo exatamente o que precisava. Tive que instalar a dependência. A instalação manual do win32-process me trouxe um grande passo mais perto de executar o Resque-web:
C:>gem install win32-process
Depois disso, encontrei um erro de HOME ausente, então eu defini essa variável de ambiente assim:
C:>set HOME=C:Usersusername
Além disso, vários blogs e relatórios de problemas sugerem a execução de Resque-web com -F no Windows para restringir a bifurcação.
E, finalmente, para definir corretamente meu namespace redis, tive que incluí-lo na string de conexão, não como um parâmetro para -n.
C:pathtodemo>resque-web -p 8282 -r server.domain.name:redis-port/Resque-namespace -F -L
Depois de tudo isso, fui capaz de iniciar o resque-web no Windows e seguir em frente com o desenvolvimento de nossa solução.
1. Para aqueles que não estão familiarizados com o Resque, Vegas é um invólucro em torno do sinatra que o Resque usa para servir ao Resque-web – o console de administração web integrado do Resque.