Rails: démarrage de Sidekiq sur Heroku

J'ai du mal à mettre Sidekiq en marche sur mon application Heroku deployed Rails. J'ai mon application qui fonctionne bien dans le développement (et sur Heroku sans Sidekiq).

j'ai créé un fichier Procfile avec:

worker: bundle exec sidekiq

si je cours heroku ps, le seul que je vois est web.1.

devrais-je en voir un pour Sidekiq?

j'obtiens une erreur:

Redis::CannotConnectError (Error connecting to Redis on localhost:6379) dans Mon Journal D'Heroku.

mise à JOUR: j'ai Trouvé que j'probablement besoin d' heroku addons:add redistogo. Toujours pas travailler. J'ai l'impression de rater une configuration de base.

y a-t-il quelque chose que je dois faire pour faire fonctionner Redis pour mon application Heroku?

J'utilise Redis / Sidekiq depuis environ un jour, donc c'est nouveau pour moi.

Merci!

Greg

34
demandé sur Flip 2012-12-08 00:45:44

6 réponses

Non vous n'avez pas besoin de config avec Heroku pour Sidekiq, il suffit d'ajouter le RedisToGo plugin et que vous êtes sur. N'oubliez pas d'attribuer au moins 1 travailleur à votre application dans votre config Heroku.

Voici mon fichier Procfile par défaut:

web: bundle exec thin start -p $PORT
worker: bundle exec sidekiq -c 5 -v
50
répondu gdurelle 2012-12-19 09:04:46

il est intéressant de vérifier si le processus de sidekiq est vraiment commencé avec cette commande:

heroku ps

S'il n'y a pas de worker, alors vous pourriez avoir besoin de lancer cette commande:

heroku ps:scale worker+1

il s'avère qu'il y a un bug dans L'UI web en ce que certains membres de l'équipe n'ont pas été autorisés à augmenter le nombre de travailleurs de 0 à 1, même si L'UI semblait le montrer!

32
répondu justingordon 2013-08-23 22:48:45

A partir de la version 3.0 de sidekiq, il y a une étape supplémentaire, exécuter heroku config:set REDIS_PROVIDER=REDISTOGO_URL dans la console.

voici le processus que j'ai utilisé pour les Rails 4:

Dans la console:

heroku addons:create redistogo
heroku config:set REDIS_PROVIDER=REDISTOGO_URL

Dans mon Procfile j'ai ajouté:

worker: bundle exec sidekiq

Dans mon gemfile.rb j'ai ajouté:

gem 'redis'

j'ai ajouté le fichier suivant, config/initializers/redis.rb:

uri = ENV["REDISTOGO_URL"] || "redis://localhost:6379/"
REDIS = Redis.new(:url => uri)

Ici lien aux Docs de sidekiq.

15
répondu Steve 2015-07-03 21:58:31

Sons comme vous y êtes presque. Il se peut que vous ayez juste besoin de définir REDISTOGO_URL sur le Heroku config