void DoMaintenance_VeryInfrequent(Daemon daemon)
        {
            daemon.Sleep(15 * 60 * 1000);
            //daemon.Sleep(5 * 1000);

            if (RegistrySettings.Instance.IsSet(RegistrySettings.SuppressDaemon))
            {
                Logging.Info("Daemon is forced to sleep via registry SuppressDaemon");
                daemon.Sleep(10 * 1000);
                return;
            }

            try
            {
                AutoSyncManager.Instance.DoMaintenance();
            }
            catch (Exception ex)
            {
                Logging.Error(ex, "Exception in autosync_manager_daemon");
            }

            foreach (var x in WebLibraryManager.Instance.WebLibraryDetails_WorkingWebLibraries_All)
            {
                Library library = x.library;

                // If this library is busy, skip it for now
                if (Library.IsBusyAddingPDFs)
                {
                    Logging.Info("Not daemon processing a library that is busy with adds...");
                    continue;
                }

                try
                {
                    if (library.WebLibraryDetail.IsBundleLibrary)
                    {
                        BundleLibraryUpdatedManifestChecker.Check(library);
                    }
                }
                catch (Exception ex)
                {
                    Logging.Warn(ex, "Exception in BundleLibraryUpdatedManifestChecker.Check()");
                }
            }
        }
        private void DoMaintenance_VeryInfrequent(Daemon daemon)
        {
            daemon.Sleep(15 * 60 * 1000);

            if (ConfigurationManager.Instance.ConfigurationRecord.DisableAllBackgroundTasks)
            {
                Logging.Debug特("Daemons are forced to sleep via Configuration::DisableAllBackgroundTasks");
                return;
            }

            try
            {
                AutoSyncManager.Instance.DoMaintenance();
            }
            catch (Exception ex)
            {
                Logging.Error(ex, "Exception in autosync_manager_daemon");
            }

            // If this library is busy, skip it for now
            if (Library.IsBusyAddingPDFs)
            {
                Logging.Debug特("DoMaintenance_VeryInfrequent: Not daemon processing any library that is busy with adds...");
                return;
            }

            foreach (var x in WebLibraryManager.Instance.WebLibraryDetails_WorkingWebLibraries_All)
            {
                Library library = x.library;

                try
                {
                    if (library.WebLibraryDetail.IsBundleLibrary)
                    {
                        BundleLibraryUpdatedManifestChecker.Check(library);
                    }
                }
                catch (Exception ex)
                {
                    Logging.Warn(ex, "Exception in BundleLibraryUpdatedManifestChecker.Check()");
                }
            }
        }