2011-07-11 36 views
5

Hệ điều hành Windows Azure có tự động khởi động lại hoặc đặt lại vai trò nhân viên đang chạy không? Hoặc tôi có thể dựa vào thực tế vai trò Công nhân của tôi đang chạy vô hạn nếu tôi có một vòng lặp trong phương thức Run() không?Vòng đời Workerrole của Azure

Trả lời

3

Trường hợp vai trò (cho dù Công nhân hoặc Web) được tái chế ít nhất một lần mỗi tháng, vì Hệ điều hành khách được cập nhật hàng tháng. Hệ điều hành chủ được làm mới trên cơ sở hàng quý, có khả năng dẫn đến tái chế vai trò bổ sung (giả sử các cập nhật Máy chủ và Khách được thực hiện riêng).

Có nói rằng: Bạn có thể chọn không tự động cập nhật lên Hệ điều hành khách mới nhất, bằng cách chỉ định phiên bản Hệ điều hành khách để sử dụng. Bạn không thể chọn không tham gia cập nhật trên Máy chủ lưu trữ.

Nói chung, bạn nên không dựa vào vai trò vai trò đang chạy vô hạn. Bạn cần phải giả định rằng sẽ có khởi động lại trong tương lai của bạn. Ngoài các bản cập nhật của Máy chủ lưu trữ, có những lỗi phần cứng có thể xảy ra và sẽ xảy ra.

Xem here để biết thêm thông tin về cập nhật hệ điều hành dành cho khách và here để cập nhật hệ điều hành máy chủ.

1

Không có sự kiện nào bạn có thể dựa vào máy chủ chạy liên tục - đôi khi nó sẽ bị ngừng để cập nhật và có thể bị lỗi vì bất kỳ lý do gì. Vì vậy, mã của bạn nên được nhận thức và thiết lập các trạm kiểm tra định kỳ và có thể tiếp tục. Vì vậy, có, bạn có thể có một vòng lặp while(true) doStuff(), nhưng bạn phải thiết kế mã của bạn để hoạt động của nó ảnh hưởng đến lưu trữ toàn cầu - SQL Azure, blob, hàng đợi và bảng - để bộ nhớ đó ở trạng thái nhất quán mọi lúc. Bằng cách này, vòng lặp của bạn sẽ bị gián đoạn (do sự cố hoặc do một ngoại lệ cho việc hủy bỏ chuỗi đang chạy) mã của bạn có thể tiếp tục khi vai trò được khởi động lại.

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