Chỉnh sửa để làm rõ
Trước khi mọi thứ khác, bạn nên hiểu rằng khi bạn chạy perform_async
, nó chỉ đơn giản gậy Jobs vào một hàng đợi Redis. Sidekiq xem hàng đợi này và chạy các công việc khi họ vào. Vì vậy, miễn là ứng dụng của bạn và Sidekiq của bạn đang xem cùng một máy chủ Redis (và cùng một cơ sở dữ liệu), mọi thứ sẽ hoạt động.
Original câu trả lời
Thứ nhất, như bạn có thể đoán, nó sẽ cần một thanh toán trùng lặp của mã của bạn để nó có thể chạy. Không phải vấn đề lớn.
Thứ hai, nó sẽ cần quyền truy cập vào cơ sở dữ liệu của bạn và máy chủ redis trên hộp khác. Điều đó có nghĩa là đảm bảo các cổng đó đang mở trên máy chủ khác. Điều đó có thể phức tạp, b/c bạn lý tưởng không muốn những người tiếp xúc với Internet mở. Thông thường, đối với thiết lập nhiều hộp, bạn sẽ chỉ có một hộp được hiển thị với Internet mở. Nó giao tiếp với phần còn lại của hộp qua IP riêng:
Công Web server
Chạy Apache/Nginx và có lẽ các máy chủ ứng dụng của bạn.
App Private Server (s) (không bắt buộc)
Chạy máy chủ ứng dụng của bạn, nếu chúng không được chạy trên máy chủ công cộng. Kết nối với cơ sở dữ liệu của bạn và máy chủ Redis.
Private Sidekiq Server (s) (không bắt buộc)
Chạy Sidekiq. Kết nối với cơ sở dữ liệu của bạn và máy chủ Redis.
Private Database/Redis server
Chạy cơ sở dữ liệu và Redis. Tất nhiên họ có thể chia ra các máy chủ khác nhau nếu cần thiết.
Bạn đã trải qua [wiki này trên trang Github của Sidekiq] (https://github.com/mperham/sidekiq/wiki/Advanced-Options) chưa? – Kashyap
Có, nhưng tôi không thể tìm thấy bất cứ điều gì liên quan đến những gì tôi yêu cầu. Nêu tôi sai vui long chân chỉnh tôi. – Ovesh