Skip to content

Commit 51b1898

Browse files
committed
#246 - Rodar tarefas agendadas de forma nativa - feature/sp7/#246
1 parent e71a4e0 commit 51b1898

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using JSE.Core.Utils;
22
using JSE.MessageBus;
3+
using JSE.Pedidos.API.Services;
34

45
namespace JSE.Pedidos.API.Configuration
56
{
@@ -8,7 +9,8 @@ public static class MessageBusConfig
89
public static void AddMessageBusConfiguration(this IServiceCollection services,
910
IConfiguration configuration)
1011
{
11-
services.AddMessageBus(configuration.GetMessageQueueConnection("MessageBus"));
12+
services.AddMessageBus(configuration.GetMessageQueueConnection("MessageBus"))
13+
.AddHostedService<PedidoOrquestradorIntegrationHandler>();
1214
}
1315
}
1416
}

src/services/JSE.Pedido.API/Controllers/PedidoController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using Microsoft.AspNetCore.Authorization;
77
using Microsoft.AspNetCore.Mvc;
88

9-
namespace JSE.Pedido_API.Controllers
9+
namespace JSE.Pedidos.API.Controllers
1010
{
1111
[Authorize]
1212
public class PedidoController : MainController
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+

2+
namespace JSE.Pedidos.API.Services
3+
{
4+
public class PedidoOrquestradorIntegrationHandler : IHostedService, IDisposable
5+
{
6+
private readonly ILogger<PedidoOrquestradorIntegrationHandler> _logger;
7+
private Timer _timer;
8+
9+
public PedidoOrquestradorIntegrationHandler(ILogger<PedidoOrquestradorIntegrationHandler> logger)
10+
{
11+
_logger = logger;
12+
}
13+
14+
public Task StartAsync(CancellationToken cancellationToken)
15+
{
16+
_logger.LogInformation("Serviço de pedidos iniciado.");
17+
18+
_timer = new Timer(ProcessarPedidos, null, TimeSpan.Zero,
19+
TimeSpan.FromSeconds(15));
20+
21+
return Task.CompletedTask;
22+
}
23+
24+
private async void ProcessarPedidos(object state)
25+
{
26+
_logger.LogInformation("Processando Pedidos");
27+
}
28+
29+
public Task StopAsync(CancellationToken cancellationToken)
30+
{
31+
_logger.LogInformation("Serviço de pedidos finalizado.");
32+
33+
_timer?.Change(Timeout.Infinite, 0);
34+
35+
return Task.CompletedTask;
36+
}
37+
38+
public void Dispose()
39+
{
40+
_timer?.Dispose();
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)