Vì không ai cung cấp giải pháp cho this post cộng với thực tế là tôi rất cần một giải pháp, đây là tình huống của tôi và một số giải pháp/ý tưởng trừu tượng để tranh luận.Cần tây tích hợp cần tây
chồng của tôi:
- Tornado
- Cần tây
- MongoDB
- Redis
- RabbitMQ
Vấn đề của tôi: Tìm một cách để Tornado để gửi một cần tây công việc (đã giải quyết) một d sau đó thu thập kết quả không đồng bộ (bất kỳ ý tưởng nào?).
Kịch bản 1: (request/response Hack cộng webhook)
- Tornado nhận (người dùng) yêu cầu, sau đó lưu trong bộ nhớ địa phương (hoặc trong Redis) a {jobID: (người sử dụng) theo yêu cầu} để nhớ nơi truyền bá phản ứng và kích hoạt nhiệm vụ cần tây với jobID
- Khi cần tây hoàn thành nhiệm vụ, nó thực hiện một webhook tại một số url và nói với lốc xoáy rằng jobID này đã kết thúc (cộng với kết quả)
- Tornado truy xuất (người dùng) yêu cầu và gửi trả lời cho (người dùng)
Điều này có thể xảy ra không? Liệu nó có logic nào không?
Kịch bản 2: (cơn lốc xoáy cộng dài polling)
- Tornado công văn công việc cần tây và trả về một số dữ liệu json chính cho khách hàng (jQuery)
- jQuery hiện một số dài bỏ phiếu khi nhận của json chính, giả sử, mỗi x micro giây và phản hồi lốc xoáy theo một số cờ cơ sở dữ liệu. Khi nhiệm vụ cần tây hoàn thành, cờ cơ sở dữ liệu này được đặt thành True, sau đó jQuery "loop" được hoàn thành.
Điều này có hiệu quả không?
Bất kỳ ý tưởng/lược đồ nào khác?
Công việc tuyệt vời Eren! – hymloth