Một trong những điều tuyệt vời về khung chơi là nó hoàn toàn không trạng thái và chỉ yêu cầu/trả lời theo định hướng. Điều này thực sự tốt đẹp vì nó cho phép tôi triển khai ứng dụng của mình lên đám mây và mở rộng số lượng các bản sao phát sau cân bằng tải của tôi mà không phải lo lắng về bản sao trạng thái (phiên) ...Play Framework: Tác động của Jobs trên mô hình không quốc tịch
Gần đây, tuy nhiên, tôi cần thực hiện một số logic ứng dụng bên ngoài yêu cầu HTTP và phát hiện ra rằng Play có khả năng xác định Công việc được quản lý hoàn toàn bởi khung công tác. Âm thanh rực rỡ nhưng nó đặt ra câu hỏi: làm thế nào để những công việc này phù hợp với mô hình không quốc tịch được Play sử dụng?
Giả sử tôi có nhiệm vụ bảo trì cần chạy mỗi giờ và tôi xác định công việc đã lên lịch cho điều đó. Nếu sau đó tôi triển khai nhiều phiên bản Play phía sau bộ cân bằng tải, công việc đó có được bắt đầu cùng một lúc trên mỗi phiên bản không? Và nếu như vậy, cách tiếp cận tốt để xử lý các công việc cần phải chạy "độc quyền" là gì?
Tôi đã nghĩ đến việc tạo một cá thể phát mới trên máy chủ không được nhóm, tái sử dụng mô hình JPA của cá thể hiện có (nhóm) (và do đó kết nối với cùng một cơ sở dữ liệu). Ví dụ mới này sẽ chỉ chứa các công việc bảo trì và vì nó được lưu trữ trên một máy chủ không được nhóm, không có nguy cơ một công việc chạy cùng một lúc. Đồng thời, điều này sẽ cho phép tôi giữ cho trường hợp hiện tại, nhóm của tôi hoàn toàn không quốc tịch và dễ dàng lưu trữ/cân bằng tải. Đây có phải là một cách tiếp cận tốt không?
Bắt đầu một phần thưởng, xem bên dưới. – ripper234