diff --git a/Directory.Packages.props b/Directory.Packages.props
index 8aea8da..10178a3 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -9,7 +9,7 @@
-
+
diff --git a/src/Nocr.TelegramListener.AppServices/UpdateListeners/UpdateListenerBackgroundService.cs b/src/Nocr.TelegramListener.AppServices/UpdateListeners/UpdateListenerBackgroundService.cs
index 0b78622..267a89c 100644
--- a/src/Nocr.TelegramListener.AppServices/UpdateListeners/UpdateListenerBackgroundService.cs
+++ b/src/Nocr.TelegramListener.AppServices/UpdateListeners/UpdateListenerBackgroundService.cs
@@ -17,6 +17,8 @@ public sealed class UpdateListenerBackgroundService : BackgroundService
private readonly ITelegramClientContainer _telegramClientContainer;
private readonly TelegramRegistry _telegramRegistry;
+ private DateTimeOffset _activityStartTime = DateTimeOffset.UtcNow;
+
public UpdateListenerBackgroundService(
ILogger logger,
IServiceProvider serviceProvider,
@@ -37,6 +39,14 @@ public sealed class UpdateListenerBackgroundService : BackgroundService
Client? client = null;
while (!stoppingToken.IsCancellationRequested)
{
+ if (DateTimeOffset.UtcNow - TimeSpan.FromHours(2) < _activityStartTime)
+ {
+ _logger.LogInformation("Timeout exceed.");
+ _activityStartTime = DateTimeOffset.UtcNow;
+
+ client = null;
+ }
+
if (client == null)
{
_telegramRegistry.Clear();
@@ -44,7 +54,7 @@ public sealed class UpdateListenerBackgroundService : BackgroundService
_telegramClientContainer.Initialize();
client = _telegramClientContainer.Client;
- client.OnUpdate += HandleUpdates;
+ client.OnUpdates += HandleUpdates;
var my = await client.LoginUserIfNeeded();
_telegramRegistry.SetMy(my);
@@ -52,11 +62,10 @@ public sealed class UpdateListenerBackgroundService : BackgroundService
_telegramRegistry.My.username ??
_telegramRegistry.My.first_name + " " + _telegramRegistry.My.last_name,
_telegramRegistry.My.id);
-
- await _telegramRegistry.Update(client);
}
-
- await Task.Delay(TimeSpan.FromMinutes(5), stoppingToken);
+
+ await _telegramRegistry.Update(client);
+ await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
}
}