- Bạn đã thiết lập một hoặc nhiều tập lệnh công nhân cho hệ thống định hướng hàng đợi như thế nào?
- Làm cách nào để sắp xếp khởi động - và khởi động lại nếu cần - các tập lệnh công nhân theo yêu cầu? (Tôi đang nghĩ về các công cụ như init.d /, 'god' dựa trên Ruby, Daemontools của DJB, v.v.)
Tôi đang phát triển hệ thống hàng đợi/nhân viên không đồng bộ, trong trường hợp này sử dụng PHP & BeanstalkdD (mặc dù ngôn ngữ thực tế và daemon không quan trọng). Các nhiệm vụ không phải là quá khó - mã hóa một mảng với các lệnh và các tham số vào JSON để vận chuyển qua daemon Beanstalkd, chọn chúng trong một kịch bản công nhân để hành động chúng theo yêu cầu.Hệ thống xếp hàng - cách tốt nhất để bắt đầu nhiều công nhân là gì?
Có một số thiết lập hàng đợi/công nhân tương tự khác, chẳng hạn như Starling, Gearman, Amazon's SQS và các hệ thống định hướng 'doanh nghiệp' khác như MQ và RabbitMQ của IBM. Nếu bạn chạy một cái gì đó như Gearman, hoặc SQS - làm cách nào để bạn bắt đầu và kiểm soát nhóm công nhân? Câu hỏi đặt ra là khởi động công nhân ban đầu, và sau đó có thể bổ sung thêm công nhân, tắt chúng theo ý muốn (mặc dù tôi có thể gửi tin nhắn thông qua hàng đợi để tắt chúng - miễn là một số 'người quan sát' sẽ không tự động khởi động lại chúng). Đây không phải là một vấn đề PHP, đó là về các quy trình Unix thẳng của việc thiết lập một hoặc nhiều quy trình để chạy khi khởi động, hoặc thêm nhiều công nhân hơn vào nhóm.
A bash script to loop a script đã sẵn sàng - điều này gọi tập lệnh PHP sau đó thu thập và chạy các nhiệm vụ từ hàng đợi, thỉnh thoảng thoát ra để có thể tự làm sạch nó (nó cũng có thể tạm dừng một vài giây do lỗi hoặc thông qua kế hoạch biến cố). Điều này làm việc tốt, và xây dựng các quy trình công nhân trên đầu trang mà sẽ không phải là rất khó khăn cả.
Bắt hệ thống điều khiển công nhân tốt là về tính linh hoạt, bắt đầu một hoặc hai tự động trên máy bắt đầu và có thể thêm một vài từ dòng lệnh khi hàng đợi bận, tắt các tính năng bổ sung khi không còn yêu cầu .
Xin chào! Bạn đã triển khai hệ thống của mình như thế nào? Tôi có vấn đề triển khai tương tự và muốn nhận được một số phản hồi từ bạn. – wormhit