2014-09-22 22 views
6

Một dự án tôi đã thực hiện với Meteor có rò rỉ bộ nhớ mà từ từ tích lũy trong một hoặc hai tháng. Sau khi chìm trong ngày để tìm ra chỗ rò rỉ, tôi đang ném chiếc khăn có lợi cho việc thêm tự động khởi động lại xảy ra mỗi tháng một lần. Có thực hành không tốt, v.v.Cách khởi động lại máy chủ Meteor từ trong Meteor.js

Có cách nào để khởi động lại đơn giản từ bên trong codebase của máy chủ không? Lý tưởng nhất điều này cũng sẽ kích hoạt một làm mới cho khách hàng được kết nối (tương tự như bản cập nhật triển khai thường xuyên).

Sau đó, tôi giả sử lệnh này chỉ có thể được lồng trong một chức năng hết thời gian chờ JS cũ tốt.

+2

Tôi nghĩ rằng đơn giản 'process.exit() 'nên thực hiện công việc, kể từ khi ứng dụng của bạn có thể sẽ chạy trong một môi trường với tính năng autorestart anyways. –

+1

Bạn đã thử sử dụng https://kadira.io/ để tìm sự cố chưa? – zeroasterisk

Trả lời

3

Câu trả lời do apendua cung cấp. Đó là một tổng số hack, và không được đề nghị cho hầu hết các trường hợp, nhưng tuyệt vời cho rò rỉ bộ nhớ dài hạn.

Đặt này trong kịch bản khởi động của bạn:

var restartFrequency = 1000 * 60 * 24; // 1 day (1000 millsec * 60 min * 24 hour) 
setTimeout(function(){ 
    process.exit(); 
}, restartFrequency); 
+0

1000 ms == 1 giây. trận đấu của bạn phải là '1000 * 60 * 60 * 24' => 1s * 60 (== 1 phút) * 60 (== 1 giờ) * 24 (== 1 ngày) – rkstar

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