Changeset 17574 for trunk/HeuristicLab.Services.Hive/3.3/HiveJanitor.cs
- Timestamp:
- 05/29/20 13:28:25 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/HeuristicLab.Services.Hive/3.3/HiveJanitor.cs
r17180 r17574 28 28 public class HiveJanitor { 29 29 private bool stop; 30 private AutoResetEvent cleanupWaitHandle; 31 private AutoResetEvent generateStatisticsWaitHandle; 30 private AutoResetEvent runWaitHandle; 32 31 33 32 private IPersistenceManager PersistenceManager { … … 44 43 public HiveJanitor() { 45 44 stop = false; 46 cleanupWaitHandle = new AutoResetEvent(false); 47 generateStatisticsWaitHandle = new AutoResetEvent(false); 45 runWaitHandle = new AutoResetEvent(false); 48 46 } 49 47 50 48 public void StopJanitor() { 51 49 stop = true; 52 cleanupWaitHandle.Set(); 53 generateStatisticsWaitHandle.Set(); 50 runWaitHandle.Set(); 51 } 52 53 public void Run() { 54 while (!stop) { 55 RunCleanup(); 56 RunGenerateStatistics(); 57 runWaitHandle.WaitOne(Properties.Settings.Default.GenerateStatisticsInterval); 58 } 59 runWaitHandle.Close(); 54 60 } 55 61 56 62 public void RunCleanup() { 57 63 var pm = PersistenceManager; 58 while (!stop) { 59 try { 60 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: starting cleanup."); 61 bool cleanup = false; 64 try { 65 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: starting cleanup."); 66 bool cleanup = false; 62 67 63 64 65 66 67 68 69 70 71 72 68 var lifecycleDao = pm.LifecycleDao; 69 pm.UseTransaction(() => { 70 var lifecycle = lifecycleDao.GetLastLifecycle(); 71 if (lifecycle == null 72 || DateTime.Now - lifecycle.LastCleanup > Properties.Settings.Default.CleanupInterval) { 73 lifecycleDao.UpdateLifecycle(); 74 cleanup = true; 75 } 76 pm.SubmitChanges(); 77 }, true); 73 78 74 if (cleanup) { 75 EventManager.Cleanup(); 76 } 77 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: cleanup finished."); 79 if (cleanup) { 80 EventManager.Cleanup(); 78 81 } 79 catch (Exception e) { 80 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log(string.Format("HiveJanitor: The following exception occured: {0}", e.ToString())); 81 } 82 cleanupWaitHandle.WaitOne(Properties.Settings.Default.CleanupInterval); 82 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: cleanup finished."); 83 } catch (Exception e) { 84 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log(string.Format("HiveJanitor: The following exception occured: {0}", e.ToString())); 83 85 } 84 cleanupWaitHandle.Close();85 86 } 86 87 87 88 public void RunGenerateStatistics() { 88 while (!stop) { 89 try { 90 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: starting generate statistics."); 91 StatisticsGenerator.GenerateStatistics(); 92 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: generate statistics finished."); 93 } 94 catch (Exception e) { 95 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log(string.Format("HiveJanitor: The following exception occured: {0}", e)); 96 } 97 98 generateStatisticsWaitHandle.WaitOne(Properties.Settings.Default.GenerateStatisticsInterval); 89 try { 90 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: starting generate statistics."); 91 StatisticsGenerator.GenerateStatistics(); 92 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log("HiveJanitor: generate statistics finished."); 93 } catch (Exception e) { 94 LogFactory.GetLogger(typeof(HiveJanitor).Namespace).Log(string.Format("HiveJanitor: The following exception occured: {0}", e)); 99 95 } 100 101 generateStatisticsWaitHandle.Close();102 96 } 103 97 }
Note: See TracChangeset
for help on using the changeset viewer.