Lưu ý: Tôi không chắc liệu mình có nên hỏi điều này ở đây, tràn ngăn xếp hay ???
Tôi đang di chuyển ứng dụng Ruby on Rails từ Heroku sang AWS. Kiến trúc máy chủ khá đơn giản:
- cơ sở dữ liệu
- Máy chủ web
- Máy chủ công nhân
Cơ sở dữ liệu và Máy chủ web đã được di chuyển thành công sang AWS. Máy chủ Công nhân đang ở trên boong.
FWIW: Máy chủ web aws đang chạy Ubuntu 20.x w/ Pasbah / nginx làm máy chủ http.
Tôi hiện đang làm việc để di chuyển Công nhân, được triển khai với mã chính xác giống như Máy chủ Web. Sự khác biệt duy nhất là Công nhân không thể truy cập công khai và sử dụng Ruby Gem bị trì hoãn để xử lý các yêu cầu nền.
Máy chủ công nhân
- Máy chủ công nhân được tạo từ một ami dựa trên máy chủ web.
- Đã xóa cấu hình máy chủ nginx là một phần mềm khỏi máy chủ web.
câu hỏi
Làm cách nào để thiết lập máy chủ Công nhân tự động khởi động và bắt đầu chạy các công việc nền khi máy chủ khởi động?
Làm cách nào để giữ cho worker process hoạt động nếu nó xảy ra lỗi và tắt máy?
Trong Heroku, dòng lệnh bắt đầu máy chủ worker:
bundle exec rake jobs:work
Sau khi khởi động máy chủ Worker, tôi có thể chạy lệnh trên và quy trình worker chạy rất tốt. Chỉ cần tìm ra cách để worker process chạy không tương tác.
FYI: Tôi đến từ nền tảng Windows/.NET. Môi trường Linux/Ruby/Rails vẫn còn khá mới đối với tôi.