【问题标题】:Two Worker Service, one for write operation another for read operation .Net core worker services两个 Worker 服务,一个用于写操作,另一个用于读操作 .Net 核心工作者服务
【发布时间】:2021-03-03 15:26:44
【问题描述】:

.Net core Worker 服务模板如下图

  public class Worker : BackgroundService
    {
        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }

        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {            
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                 await Task.Delay(10000, stoppingToken);
            }
        }
    }

这是 .net core worker 服务代码。它每 10000 毫秒循环写入一次日志。
我的问题:每 10000 毫秒后,如何使用此工作服务调用另一个工作服务。

【问题讨论】:

  • 您的日志记录提供商是什么?我们无法从界面上真正分辨出来。

标签: c# .net-core backgroundworker


【解决方案1】:

如何使用这个工作服务调用另一个工作服务。

我的第一个问题是“你为什么要这样做?”这非常不寻常。

但是,如果您真的想要,那么您可以添加一个内存队列(例如,Channel&lt;T&gt;)包装器作为单例并将其注入到两个工作器中。然后一个工人可以消费通道,另一个工人可以生产到它。

【讨论】:

  • 第一个工作人员将每 10000 毫秒将数据插入数据库,第二个工作人员将读取插入该 10000 毫秒的插入数据。
  • @Subrato:如果第二个工作人员正在轮询数据库,那么为什么要从第一个工作人员向第二个工作人员发送消息?
  • 如果我不从第一个工作人员向第二个工作人员发送消息,那么如何读取当前 10000 毫秒插入的数据。
  • 让我换一种说法:为什么有两个工人而不是一个?
猜你喜欢
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多