BackgroundWorkerDaemon()
        {
            Logging.Info("Starting background worker daemon.");

            metadata_extraction_daemon = new MetadataExtractionDaemon();

            MaintainableManager.Instance.Register(DoMaintenance_OnceOff, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.Register(DoMaintenance_Frequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.Register(DoMaintenance_Infrequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.Register(DoMaintenance_QuiteInfrequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.Register(DoMaintenance_VeryInfrequent, 10 * 1000, ThreadPriority.BelowNormal);
        }
        private BackgroundWorkerDaemon()
        {
            Logging.Info("Starting background worker daemon.");

            metadata_extraction_daemon = new MetadataExtractionDaemon();

            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_OnceOff, 1 * 1000, ThreadPriority.BelowNormal, 1);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_Frequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_Infrequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_QuiteInfrequent, 10 * 1000, ThreadPriority.BelowNormal);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_VeryInfrequent, 10 * 1000, ThreadPriority.BelowNormal);

            // hold off: level 3 -> 2
            MaintainableManager.Instance.BumpHoldOffPendingLevel();
        }
        private BackgroundWorkerDaemon()
        {
            Logging.Info("Starting background worker daemon.");

            metadata_extraction_daemon = new MetadataExtractionDaemon();

            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_OnceOff, 1 * 1000, hold_off_level: 1);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMonitoring_Frequent, 0, 2 * 1000);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_Frequent, 10 * 1000, 1 * 1000);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_Infrequent, 10 * 1000, 10 * 1000);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_QuiteInfrequent, 10 * 1000, 1 * 60 * 1000);
            MaintainableManager.Instance.RegisterHeldOffTask(DoMaintenance_VeryInfrequent, 10 * 1000, 15 * 60 * 1000);

            // hold off: level 3 -> 2
            MaintainableManager.Instance.BumpHoldOffPendingLevel();
        }