2014-09-05 28 views
5

Tôi có một dịch vụ DropWizard đơn giản và tôi muốn một API REST để bắt đầu một nhiệm vụ xử lý đang chạy dài - cả CPU và I/O bị ràng buộc. Cuộc gọi REST sẽ không chờ hoàn thành nhiệm vụ, thông báo sẽ xảy ra bằng cách bỏ phiếu/bỏ phiếu dài/ổ cắm web.Xử lý yêu cầu dài với DropWizard

Bây giờ, tôi thích nếu tôi có thể làm điều này trong Dropwizard và giữ mọi thứ trong JAR có thể triển khai. Những lựa chọn của tôi là gì?

CẬP NHẬT: Tôi quan tâm đến các tùy chọn của tôi liên quan đến việc chạy các tác vụ chạy dài trong Dropwizard, được triển khai dưới dạng jar đơn không có phụ thuộc bên ngoài. Chỉ sinh ra một chủ đề mới? Giả sử chỉ có vài yêu cầu như vậy nó có thể sẽ làm việc nhưng cần có lựa chọn tốt hơn.

+0

stackoverflow thực sự là để được trợ giúp với một vấn đề cụ thể, không giúp bạn chọn một thiết kế. Điều đó đang được nói, hãy xem xét WebHooks. –

+0

@ joakim-erdfelt - đã thêm chi tiết vào câu hỏi ban đầu của tôi, hy vọng sẽ có ý nghĩa hơn bây giờ. – bh213

Trả lời

11

Bạn có thể muốn sử dụng một nguồn lực quản lý:

http://www.dropwizard.io/1.0.5/docs/manual/core.html#managed-objects

để thiết lập một hồ bơi thread. Sau đó, yêu cầu ban đầu của bạn có thể đẩy một tin nhắn lên hàng đợi. Hồ bơi chuỗi của bạn có thể kéo các thư ra khỏi hàng đợi và xử lý chúng một cách không đồng bộ.

Bạn có thể cung cấp điểm cuối bổ sung để khách hàng có thể có được trạng thái hiện tại của quá trình không đồng bộ.

+0

Bạn có thể cung cấp một ví dụ được không? – me1111

+0

Ổ cắm web có cần thiết cho trường hợp này không? – me1111

+0

Đó là một dự án khá lớn để đưa ra một ví dụ, bạn cần viết các thành phần phía trước và phía sau và nhu cầu back-end để xử lý nhiều yêu cầu. Phần nào đặc biệt? Tôi chắc chắn có rất nhiều ví dụ nếu bạn tìm kiếm xung quanh. –

Các vấn đề liên quan