Как разместить службу gRP C и запланированную задачу в службе. net Core Windows? - PullRequest
0 голосов
/ 25 мая 2020

У меня есть служба gRP C, которая получает данные, которые затем используются в течение 6 часов (машинное обучение ...). Чтобы избежать 6-часовой работы в вызове gRP C, я пишу в базу данных, а затем таймер берет его и выполняет 6-часовую работу.

Теперь это реализовано в. net Framework , и я заглядываю в. net Core с внедрением зависимостей.

Есть ASP. NET, который имеет IApplicationBuilder app, который, в свою очередь, может использоваться для размещения gRP C Сервис:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapGrpcService<GreeterService>();

Это касается части gRP C, но не таймера повторного обнаружения.

Затем есть Worker Service

У него нет IApplicationBuilder, который я мог бы использовать для внедрения службы сервера gRP C. Вместо этого он поставляется с HostBuilder, который подходит для повторной задачи:

 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>();

Теперь, согласно этому ответу: { ссылка }

Можно было бы добавить «Сервер» как услугу, но для которого все еще необходимо вручную создать экземпляр gRPCServerImpl. Таким образом, здесь невозможно внедрение зависимостей.

Что вы рекомендуете для обеспечения одновременно повторяющейся задачи и службы gRP C, использующей внедрение зависимостей?

...