回答
你应该能够启动Sidekiq作为后台进程(守护进程)通过将-d参数,当你启动它:
bundle exec sidekiq -d
。
尽管此答案现在适用于您,请注意,如果由于某种原因,sidekiq进程崩溃,必须手动重新启动进程。为找出有关更稳健的方式来运行生产sidekiq一个很好的起点就在这里:https://github.com/mperham/sidekiq/wiki/Deployment
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
-d
,守护进程过程
-L
,路径可写日志文件
-C
,路径到YAML配置文件
-e
,应用环境
如果sidekiq进程因任何原因崩溃,我们将如何重新启动? – Debadatt
杀死'ps aux | grep sidekiq | grep -v grep | awk'{print $ 2}' 然后,bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production – TNCodeMonkey
比使用守护进程-d标志更好的解决方案是利用OS提供的进程监督程序。这也是recommendation given by the sidekiq gem's wiki:
我强烈建议人们不要使用-d标志,而是使用过程中的导师喜欢systemd或暴发户管理Sidekiq(或任何其他服务器守护程序)。这可确保Sidekiq在出于某种原因崩溃时立即重启。
wiki提供了一个示例配置文件,用于在"examples" directory of the repo中找到upstart和systemd。
备注 在我的CentOS 7服务器上,我使用rvm(Ruby Version Manger)。为了确保我的systemd脚本(/etc/systemd/system/sidekiq.service)能够可靠地启动和停止sidekiq,即使在未来我的ruby和/或gemset路径发生更改的情况下,我也必须执行额外的步骤。最重要的指令是“ExecStart”,它看起来像我的脚本如下:
ExecStart=/usr/local/rvm/wrappers/surveil/bundler exec sidekiq -e production -L log/sidekiq.log -C config/sidekiq.yml
路径“在/ usr /本地/ RVM /包装/ surveil”的一部分,实际上是一个符号,这是我在部署期间通过'rvm alias'的协助重新创建,以确保它始终指向应用程序的ruby版本和gemset,两者都可以从一个部署切换到另一个部署。这是通过创建在部署期间运行,并执行以下操作相当于rake任务来实现:
rvm alias delete surveil
rvm alias create surveil ruby-#{new_ruby_version}@#{new_gemset_name}
通过设置在部署期间该别名/符号链接,我可以放心地离开systemd脚本不变,它会继续工作精细。这是因为路径“/ usr/local/rvm/wrappers/surveil/bundler”总是指向正确版本的打包程序,因此会从打包程序中获益,从而使其目标在应用程序的配置的ruby/gem环境中运行。
- 1. 如何在生产服务器上运行Yard服务器?
- 2. 在生产服务器上运行faye服务器
- 3. 如何在测试/生产服务器上运行“composer update”?
- 4. sidekiq在生产中突发运行
- 5. 路由在localhost上运行,但不在生产服务器上
- 6. ftp_get在本地主机上运行,但不在生产服务器上运行
- 7. 如何在生产模式下运行redis服务器和juggernaut服务器
- 8. 如何在生产环境中运行Ruby Thrift服务器?
- 9. 在生产服务器上运行意味着什么?
- 10. “Windows Update”应该在生产服务器上自动运行吗?
- 11. 在生产代码/服务器上运行测试
- 12. 自动迁移在生产服务器上运行
- 13. 在生产服务器上部署后运行延迟作业
- 14. 如何生产服务器
- 15. 在生产环境中部署sidekiq服务器
- 16. 如何更好地在生产服务器上执行EXCEL VBA
- 17. 如何在自己的生产服务器上运行EventMachine应用程序?
- 18. 如何配置在生产服务器上运行的ASP.NET应用程序?
- 19. 运行rake db:在服务器上设置,如何切换到生产模式?
- 20. 如何检查Angular是否在生产服务器上运行vs localhost
- 21. 如何运行没有服务器的Angular 4生产代码
- 22. 如何在服务器上运行JavaScript
- 23. 如何在服务器上运行Dart?
- 24. 如何运行在服务器上
- 25. Sidekiq用户界面:内部服务器错误生产
- 26. 如何检查生产服务器上的Web服务
- 27. 在生产服务器/机器上安装Zend服务器
- 28. 如何在Windows上运行Sidekiq
- 29. 在生产服务器上部署django
- 30. 不能在生产服务器上
您应该运行Redis服务器 - 就这些了。 –
我在控制台redis-server上运行,它说[14754] 4月9日10:07:13#打开端口:bind:地址已经在使用中。 但是,如果我发送电子邮件,它不起作用。没有电子邮件得到 – Debadatt
@MarekLipka ..请建议如何解决这个问题? – Debadatt