diff --git a/FreeTubeSyncer/Program.cs b/FreeTubeSyncer/Program.cs index 4bbcfc9..1bca529 100644 --- a/FreeTubeSyncer/Program.cs +++ b/FreeTubeSyncer/Program.cs @@ -95,9 +95,13 @@ class Program { Thread.Sleep(100); if (lastTime - DateTime.Now <= TimeSpan.FromSeconds(30)) continue; + var start = DateTime.Now; + Console.WriteLine("Checking for updates..."); foreach (var syncer in syncers) syncer.FetchDatabase().Wait(); lastTime = DateTime.Now; + var end = DateTime.Now - start; + Console.WriteLine($"Check completed. Total Time: {end}"); } } } diff --git a/FreeTubeSyncer/REST/Syncer.cs b/FreeTubeSyncer/REST/Syncer.cs index 80941fc..c984257 100644 --- a/FreeTubeSyncer/REST/Syncer.cs +++ b/FreeTubeSyncer/REST/Syncer.cs @@ -29,6 +29,7 @@ public class Syncer : ISyncer where T : class, IDataModel, new() private string _restEndpoint; private bool _isDirty = false; + private bool _syncing = false; public Syncer(DBSyncWatcher watcher, string dbPath, string dbName, string restEndpoint) { @@ -97,6 +98,8 @@ public class Syncer : ISyncer where T : class, IDataModel, new() { if (dbName != _dbName) return; + if (_syncing) + return; T? entry; try @@ -129,6 +132,7 @@ public class Syncer : ISyncer where T : class, IDataModel, new() { if (!_isDirty) return; + _syncing = true; Console.WriteLine($"Syncing {_dbPath}..."); var json = new List(); foreach (var entry in _entries) @@ -136,5 +140,6 @@ public class Syncer : ISyncer where T : class, IDataModel, new() File.WriteAllLines(_dbPath, json); Console.WriteLine($"Updated {_dbPath}."); _isDirty = false; + _syncing = false; } } \ No newline at end of file