补充gdurelle的答案:
在Heroku上使用Sidekiq需要一些配置:
1)需要安装Sidekiq和Redis gem(在gemfile中并且已经捆绑),例如:
Gemfile
gem 'redis', '~> 3.1'
gem 'sidekiq', '~> 2.7', '>= 2.7.1'
2) 添加一个 worker,如果您没有在本地创建任何 worker,建议您至少创建一个,以防万一,请使用以下命令:
rails g sidekiq:worker Hard
应该创建以下文件:
app/workers/hard_worker.rb
class HardWorker
include Sidekiq::Worker
def perform(name, count)
end
end
3) 添加 Redis 插件(例如 Heroku Redis):
heroku addons:create heroku-redis:hobby-dev
4) 添加redis.rb文件,我的情况如下:
config/initializers/redis.rb
$redis = Redis.new(url: ENV["REDIS_URL"])
5) 添加 Procfile 或 config/sidekiq.yml,或者两者都添加,以下是我的示例:
Procfile
worker: bundle exec sidekiq -c 1 -q default -q mailers
您可以通过在终端中粘贴以下内容来更轻松地创建:
echo "worker: bundle exec sidekiq -c 1 -q default -q mailers" > Procfile
config/sidekiq.yml
:concurrency: 1
:queues:
- [mailers, 7]
- [default, 5]
6) 最重要的部分请前往 这里:
打开您的工作器按钮,点击铅笔图标,然后启动缺失的按钮。现在应该可以正常工作了,祝您有愉快的一天!
bundle exec sidekiq -h
访问选项帮助。不确定是否有其他参考资料可以确定并发设置。 - Clam