2
我正在測試使用Service Bus SDK從Event Hub中檢索消息的.NET Core 2.0應用程序。我設置了一個控制檯應用程序來做到這一點,並打算將該應用程序作爲Docker容器運行。如何在Docker容器中保持.NET Core控制檯應用程序活着
此方法創建事件主機處理器將讀取消息:
private static async Task MainAsync(string[] args)
{
Console.WriteLine("Registering EventProcessor...");
var eventProcessorHost = new EventProcessorHost(
EhEntityPath,
PartitionReceiver.DefaultConsumerGroupName,
EhConnectionString,
StorageConnectionString,
StorageContainerName);
// Registers the Event Processor Host and starts receiving messages
Console.WriteLine("Retrieving messages");
await eventProcessorHost.RegisterEventProcessorAsync<EventProcessor>();
Console.WriteLine("Sleeping");
Thread.Sleep(Timeout.Infinite);
}
正如EventProcessor
類實現的事件處理器會,我試圖阻止控制檯應用程序退出一個處理事件當處理器的註冊完成時。
但是,我找不到一個可靠的方法來保持應用程序的活着。如果我按原樣運行此容器,則我在輸出窗口中看到的所有內容爲:
Registering EventProcessor...
Retrieving messages
Sleeping
並且沒有收到任何消息。
這是否正常工作之外的碼頭工人? 'EhConnectionString'的價值是什麼? –
也許這會有幫助嗎? https://stackoverflow.com/questions/39246610/keep-a-self-hosted-servicestack-service-open-as-a-docker-swarm-service-without-u/39247585#39247585 – Matt
可能的重複[Keep a自我託管的服務棧服務作爲docker swarm服務打開,而不使用控制檯readline或readkey](https://stackoverflow.com/questions/39246610/keep-a-self-hosted-servicestack-service-open-as-a-docker-一窩蜂的服務,而無需-U) – Matt