src/Coast.Core/Processor/CoastProcessingServer.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace Coast.Core.Processor
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
public class CoastProcessingServer : IProcessingServer
{
private readonly CancellationTokenSource _cts;
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly IServiceProvider _provider;
private Task? _compositeTask;
private ProcessingContext _context = default!;
private bool _disposed;
public CoastProcessingServer(
ILogger<CoastProcessingServer> logger,
ILoggerFactory loggerFactory,
IServiceProvider provider)
{
_logger = logger;
_loggerFactory = loggerFactory;
_provider = provider;
_cts = new CancellationTokenSource();
}
public void Start(CancellationToken stoppingToken)
{
stoppingToken.Register(() => _cts.Cancel());
_logger.LogInformation("Starting the processing server.");
_context = new ProcessingContext(_provider, _cts.Token);
var processorTasks = GetProcessors()
.Select(InfiniteRetry)
.Select(p => p.ProcessAsync(_context));
_compositeTask = Task.WhenAll(processorTasks);
}
public void Pulse()
{
_logger.LogTrace("Pulsing the processor.");
}
public void Dispose()
{
if (_disposed)
{
return;
}
try
后面还有 42 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
