注意:我不确定是否应该在这里询问这个问题,stack overflow,还是???
我正在将 Ruby on Rails 应用程序从 Heroku 迁移到 AWS。服务器架构相当简单:
- 数据库
- 网络服务器
- 工作服务器
数据库和 Web 服务器已成功迁移到 AWS。工作服务器已准备就绪。
仅供参考:aws Web 服务器正在运行 Ubuntu 20.xw/Passenger/nginx 作为 http 服务器。
我现在正在迁移 Worker,它使用与 Web 服务器完全相同的代码进行部署。唯一的区别是 Worker 不可公开访问,并使用 Ruby Gem延迟作业处理后台请求。
工作服务器
- 工作服务器是从基于 Web 服务器的 ami 创建的。
- 删除了来自 Web 服务器的 nginx 服务器配置(该配置是工件)。
问题
如何设置工作服务器,使其在启动时自动启动并开始运行后台作业?
如果发生故障并关闭,我该如何保持工作进程正常运行?
在Heroku中,启动worker服务器的命令行:
bundle exec rake jobs:work
启动 Worker 服务器后,我可以运行上述命令,并且工作进程运行良好。只需弄清楚如何让工作进程以非交互方式运行。
仅供参考:我有 Windows/.NET 背景。Linux / Ruby / Rails 环境对我来说仍然相当新。