Resque no Windows

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.