补充 gdurelle 答案:
您确实需要使用 Heroku 为 Sidekiq 进行一些配置:
1)在我的情况下,安装 Sidekiq 和 Redis gem(在 gemfile 中并捆绑):
宝石文件
gem 'redis', '~> 3.1'
gem 'sidekiq', '~> 2.7', '>= 2.7.1'
2)添加一个工人,如果你没有在本地创建任何工人我建议你至少创建一个,以防万一,使用这个:
rails g sidekiq:worker Hard # will create app/workers/hard_worker.rb
应该创建这个:
应用程序/工人/hard_worker.rb
class HardWorker
include Sidekiq::Worker
def perform(name, count)
# do something
end
end
3) 添加 Redis 插件(在我的例子中是 Heroku Redis):
heroku addons:create heroku-redis:hobby-dev
4)添加你的 redis.rb 文件,在我的例子中:
配置/初始化程序/redis.rb
$redis = Redis.new(url: ENV["REDIS_URL"])
5)添加 Procfile 或 config/sidekiq.yml 或两者,这是我的:
档案
worker: bundle exec sidekiq -c 1 -q default -q mailers
您可以通过将其粘贴到终端中来更轻松地创建
echo "worker: bundle exec sidekiq -c 1 -q default -q mailers" > Procfile
配置/sidekiq.yml
:concurrency: 1
:queues:
- [mailers, 7]
- [default, 5]
6)最重要的部分在这里:
打开你的工人的开关,点击铅笔,然后打开丢失的开关。现在应该一切正常,祝您有美好的一天!