Chúng tôi đã di chuyển apis của chúng tôi từ python sang nút. Chúng tôi đã sử dụng hàng đợi công việc với apis động cơ ứng dụng Python của chúng tôi. Với node.js hiện được hỗ trợ trên công cụ ứng dụng, bạn có đề xuất chúng tôi sử dụng hàng đợi công việc hoặc đám mây/phụ cho công việc không? Ưu điểm/khuyết điểm của mỗi loại bao gồm độ tin cậy, tính di động, v.v.với node.js trên công cụ ứng dụng, tốt hơn là nên sử dụng hàng đợi công việc hoặc pub/sub
Trả lời
Hàng đợi công việc và Pub/Sub có các mô hình nhắn tin khác nhau và do đó rất hữu ích cho nhiều thứ khác nhau. Trong khi Pub/Sub sử dụng mô hình nhà xuất bản-người đăng ký, Hàng đợi nhiệm vụ thu thập và phân phối nhiệm vụ cho người lao động.
Sử dụng Pub/Sub để phân phối tác vụ sẽ không tự nhiên như sử dụng hàng đợi công việc. Tất cả người đăng ký vào một chủ đề Pub/Sub xem tất cả các tin nhắn, trong khi trong hàng đợi nhiệm vụ, một tin nhắn chỉ được một người nhận tiêu thụ. Mặt khác, hàng đợi công việc không được thiết kế với mục đích phát sóng tin nhắn.
Hiện tại, hàng đợi công việc hoạt động tốt nhất trên App Engine. Mặc dù có một API REST của hàng đợi nhiệm vụ thử nghiệm, hàng đợi công việc có nguồn gốc và hoạt động tốt nhất trên App Engine. Pub/Sub có thể được sử dụng từ bất cứ đâu. Trong khi nhiệm vụ xếp hàng nhiệm vụ được phân phối tự động cho các cá thể App Engine, bạn cần phải thực hiện thiết lập bổ sung để sử dụng Pub/Sub cho giao tiếp trong ứng dụng.
Hàng đợi công việc cũng cung cấp các tính năng đặc biệt, chẳng hạn như trì hoãn thư.
Edit:
Đáng tiếc là nó trông giống như đẩy hàng đợi công việc vẫn chưa sẵn sàng trên Engine runtime Node.js App.
Giải pháp Pub/Sub mà Kamal chỉ ra bên dưới là một mẹo hay để mô phỏng cân bằng tải dựa trên kéo. Sử dụng Pub/Sub có lẽ là cách phù hợp nếu bạn chọn OK với chế độ kéo, mặc dù tôi muốn làm rõ rằng API nhiệm vụ AE có sẵn (https://github.com/google/google-api-nodejs-client/tree/master/apis) cho node.js khi sử dụng kéo.
Một điều cần cân nhắc xem bạn có sử dụng tính năng kéo hoặc đẩy là chính sách thử lại hơi khác. Các mục xếp hàng nhiệm vụ có thể được cấu hình để thử lại vô thời hạn, trong khi tôi nghĩ Pub/Sub sẽ ngừng cố gửi tin nhắn nếu nó không được xác nhận sau 7 ngày.
điều khác cần xem xét nếu bạn quyết định sử dụng chế độ push PubSub là:
- Một số tính năng của hàng đợi nhiệm vụ AE như trì hoãn các thông điệp hoặc configuromg nhắn với retry hoặc thời gian cụ thể để sống cài đặt này không có sẵn trong PubSub
- Bạn sẽ cần phải biết điểm cuối cho các trường hợp bạn muốn tiêu thụ nhiệm vụ từ hàng đợi.
Trên ghi chú riêng (để trả lời câu trả lời đầu tiên bên dưới), có vẻ như tích hợp memcache được hỗ trợ. Trang này có trang tài liệu ở số https://cloud.google.com/appengine/docs/flexible/nodejs/caching-application-data.
- 1. Hàng đợi công việc trong node.js
- 2. Tôi nên sử dụng công cụ luồng công việc dựa trên Java nào?
- 3. Cách sử dụng Hàng đợi công việc của Linux
- 4. Công cụ cơ sở dữ liệu nào là tốt nhất cho các ứng dụng node.js?
- 5. Hàng đợi công việc JavaScript
- 6. Tối thiểu "Hàng đợi công việc" với các công cụ chứng khoán Linux để tận dụng CPU đa lõi
- 7. Cách tốt nhất để tạo hàng đợi cho các công việc lâu dài trong ứng dụng Grails là gì?
- 8. chủ đề công việc libuv hoặc kiểm tra sức khỏe hàng đợi công việc?
- 9. Hàng đợi công việc trong Clojure
- 10. webapp, tipfy hoặc django trên công cụ ứng dụng google
- 11. Khi phục vụ các tệp JavaScript, tốt hơn là nên sử dụng ứng dụng/javascript hoặc ứng dụng/x-javascript
- 12. Công cụ nào được các công ty CNTT, NetBeans hoặc Eclipse sử dụng nhiều hơn?
- 13. nhiều hơn một bản dựng trong hàng đợi cho công việc cụ thể trong jenkins
- 14. python lxml trên công cụ ứng dụng?
- 15. Công việc Sidekiq bị kẹt trong hàng đợi trên Heroku
- 16. Sự khác biệt giữa việc sử dụng Hàng đợi Tin nhắn so với Công việc Cron Đồng bằng với PHP
- 17. là có công cụ tốt hơn và công cụ dễ dàng hơn selen?
- 18. Ưu và khuyết điểm của việc sử dụng công cụ tạo mẫu như Jade là gì?
- 19. Hàng đợi vận hành và Hàng đợi công văn cho ứng dụng iOS
- 20. GWT trên Công cụ ứng dụng Python
- 21. curl trên công cụ ứng dụng
- 22. Use Delayed :: Công việc quản lý nhiều hàng đợi công việc
- 23. Bộ công cụ Gui, tôi nên sử dụng bộ công cụ nào?
- 24. Ứng dụng web này có yêu cầu hàng đợi công việc không?
- 25. Tôi nên sử dụng thuộc tính nào cho một Hàng đợi Công văn sau ARC?
- 26. Công cụ ứng dụng có đắt hơn khi chậm hơn không?
- 27. Tôi có thể sử dụng Node.js NPM và socket.io trên công cụ google app
- 28. django Haystack: mà công cụ tìm kiếm sẽ tốt hơn
- 29. Tôi có nên sử dụng công cụ mẫu thông minh với MVC như Yii không?
- 30. Lựa chọn thay thế hàng đợi công việc để làm việc để sử dụng với ray 3?
Vậy, node.js đang chạy trên App Engine có dễ dàng truy cập và làm việc liên tục với Hàng đợi nhiệm vụ (đẩy, không kéo) không? Ứng dụng mẫu từ Google cho các tác vụ của công nhân với node.js sử dụng Pub/Sub, đó là lý do tôi hỏi. Tôi chưa thấy tài liệu Google trên hàng đợi nhiệm vụ node.js hoặc tích hợp memcache. – philipfc
Có thể tải tin nhắn số dư trên nhiều người đăng ký. Tất cả _subscriptions_ trên một chủ đề Pub/Sub xem tất cả các tin nhắn. Tuy nhiên, nhiều người đăng ký có thể lấy tin nhắn từ cùng một thuê bao, thông thường sẽ gửi mỗi tin nhắn đến một trong số họ (mặc dù lưu ý rằng Pub/Sub đã đảm bảo giao hàng _at-lease-once_). –
Đã chỉnh sửa phản hồi ban đầu của tôi để bao gồm thông tin bổ sung. –