2024-11-26 15:14:31 +01:00
|
|
|
|
using AutoClient.Modes.FolderStore;
|
2024-10-30 08:56:31 +01:00
|
|
|
|
|
|
|
|
|
|
namespace AutoClient.Modes
|
|
|
|
|
|
{
|
2025-04-03 13:10:01 +02:00
|
|
|
|
public class FolderStoreMode
|
2024-10-30 08:56:31 +01:00
|
|
|
|
{
|
2024-10-30 11:09:13 +01:00
|
|
|
|
private readonly App app;
|
|
|
|
|
|
private Task checkTask = Task.CompletedTask;
|
2025-04-03 13:10:01 +02:00
|
|
|
|
private readonly LoadBalancer loadBalancer;
|
2024-10-30 11:09:13 +01:00
|
|
|
|
|
2025-04-03 13:10:01 +02:00
|
|
|
|
public FolderStoreMode(App app, LoadBalancer loadBalancer)
|
2024-10-30 11:09:13 +01:00
|
|
|
|
{
|
|
|
|
|
|
this.app = app;
|
2025-04-03 13:10:01 +02:00
|
|
|
|
this.loadBalancer = loadBalancer;
|
2024-10-30 11:09:13 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-04-03 13:10:01 +02:00
|
|
|
|
public void Start()
|
2024-10-30 08:56:31 +01:00
|
|
|
|
{
|
2025-01-16 15:13:16 +01:00
|
|
|
|
checkTask = Task.Run(() =>
|
2024-10-30 11:09:13 +01:00
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2025-04-03 13:10:01 +02:00
|
|
|
|
var saver = new FolderSaver(app, loadBalancer);
|
2025-04-04 08:31:27 +02:00
|
|
|
|
while (!app.Cts.IsCancellationRequested)
|
2025-02-26 16:17:20 +01:00
|
|
|
|
{
|
2025-04-04 08:31:27 +02:00
|
|
|
|
saver.Run();
|
2025-05-05 08:29:03 +02:00
|
|
|
|
Thread.Sleep(TimeSpan.FromHours(1.0));
|
2025-02-26 16:17:20 +01:00
|
|
|
|
}
|
2024-10-30 11:09:13 +01:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
2025-02-26 16:17:20 +01:00
|
|
|
|
app.Log.Error("Exception in FolderStoreMode: " + ex);
|
2024-10-30 11:09:13 +01:00
|
|
|
|
Environment.Exit(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-30 08:56:31 +01:00
|
|
|
|
public void Stop()
|
|
|
|
|
|
{
|
2025-04-04 08:31:27 +02:00
|
|
|
|
app.Cts.Cancel();
|
2024-10-30 11:09:13 +01:00
|
|
|
|
checkTask.Wait();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-30 08:56:31 +01:00
|
|
|
|
}
|