可以通过HTTP请求实现API和Worker服务之间的通信。这可以使用.NET Core中的HttpClient类来实现。下面是一个示例:
在Worker服务中:
public class Worker : BackgroundService
{
private readonly HttpClient _httpClient;
private readonly ILogger _logger;
public Worker(HttpClient httpClient, ILogger logger)
{
_httpClient = httpClient;
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
// 发送HTTP请求到API
var response = await _httpClient.GetAsync("https://api.example.com/data");
if (response.IsSuccessStatusCode)
{
// 读取响应
var content = await response.Content.ReadAsStringAsync();
_logger.LogInformation($"API response: {content}");
}
await Task.Delay(TimeSpan.FromSeconds(10), stoppingToken);
}
}
}
在API中:
[ApiController]
[Route("[controller]")]
public class DataController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok("Data from API");
}
}
在Startup类中注册HttpClient:
services.AddHttpClient();
Worker服务可以通过HttpClient发送HTTP请求到API,以检索数据。API在DataController类中公开一个端点,以提供数据。
请注意,此示例仅用于演示目的。在实际应用中,您需要注意应用程序的安全性和可扩展性。