Tôi đang cố giữ một máy chủ Grpc chạy như một giao diện điều khiển. Máy chủ gRPC này là một dịch vụ microservice chạy trong một thùng chứa docker.Giữ máy chủ Netnet của Dotnet Core chạy dưới dạng ứng dụng giao diện điều khiển?
Tất cả các ví dụ tôi có thể tìm thấy sử dụng các nội dung sau:
Console.ReadKey();
này không thực sự chặn các chủ đề chính và giữ cho nó chạy nhưng không hoạt động trong Docker với các lỗi sau:
"Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read."
Bây giờ tôi có thể cố gắng tìm một giải pháp cho docker cụ thể, nhưng điều này vẫn không cảm thấy đúng. Có ai biết về một cách "sẵn sàng sản xuất" tốt để giữ cho dịch vụ hoạt động không?
Nó sẽ có tác dụng nếu bạn sử dụng '-it' khi khởi động các docker container. Nếu điều đó không hiệu quả với bạn, bạn có thể chỉ ngủ thread chính vô thời hạn với 'Thread.Sleep (Timeout.Infinite)' –
Vùng chứa Docker được triển khai thành một cụm kubernetes trên nền tảng đám mây. Các vùng chứa tương tác không phải là một tùy chọn. Vấn đề với Thread.Sleep là không có sự tắt máy duyên dáng của máy chủ grpc khi container được dừng lại chẳng hạn. –