Ứng dụng web của tôi có 3 thành phần node.js chính: trang web, nguồn cấp dữ liệu và công việc.Forever.js bắt đầu và khởi động lại nhiều tập lệnh
Để bắt đầu những Tôi đang sử dụng mãi mãi:
//forever.js
var forever = require('forever');
function start(name){
forever.start(['coffee', name + '.coffee'], { /* log options */ })
};
start('website');
start('feeds');
start('jobs');
gì đầu tiên tôi nhận thấy là nếu tôi chạy kịch bản nó sẽ không chạy nó như là một daemon. (Rất có thể là bình thường)
node forever.js
Vì vậy, những gì tôi đã làm tiếp theo là chạy tập lệnh forever.js mãi mãi. Tôi không chắc chắn nếu điều này là chính xác, đó cũng là một forever.startDaemon vì vậy không chắc chắn mà tôi nên sử dụng.
forever start forever.js
Điều này làm việc nhưng vấn đề là tôi muốn khởi động lại tất cả các quy trình khi phiên bản mới của ứng dụng được xuất bản. Tôi đang sử dụng hook sau khi nhận của git để chạy forever.js lần đầu tiên nhưng nếu tôi làm điều này trên mỗi bài nhận, nó sẽ chỉ sinh ra 3 tiến trình mỗi lần.
Vì vậy, tôi đoán tôi cần một cách để khởi động lại 3 quy trình nếu chúng đã chạy. Tôi nghĩ để làm điều này với forever.list nhưng tài liệu chỉ nói:
forever.list (format, callback)
Returns a list of metadata objects about each process that is being run using
forever. This method is synchronous and will return the list of metadata as such.
Only processes which have invoked forever.startServer() will be available from
forever.list()
Trước hết tôi không chắc chắn những gì định dạng phương tiện và thứ hai nó hy vọng một callback nhưng sau đó nó nói đồng bộ của nó. Đó là một chút khó hiểu và tôi không chắc chắn làm thế nào để sử dụng danh sách.
Cuối cùng, tất cả những gì tôi muốn làm là bắt đầu/khởi động lại quy trình 3 node.js trên móc hậu nhận của git.
Bạn có thể chỉ cần chạy 'mãi mãi khởi động lại forever.js'? Tôi sẽ tưởng tượng rằng sẽ giết các kịch bản con nhưng nếu không thì chỉ cần làm 'mãi mãi stopall' giả sử bạn không chạy các dự án khác với cùng một ví dụ mãi mãi. –