def cleanup_unsubmitted_objects(site, hb): """ Clean up unsubmitted objects (documents, stories) older than 1 day. """ name = 'site cleanup unsubmitted %r' % physical_path(site) if cooldown(name, timedelta(hours=6)): return site.cleanupUnsubmittedObjects(site.get_site_uid())
def rdfcalendar_cron(site, hb): """ Update any `RDFCalendar` objects in the site's root """ import transaction name = 'site rdfcalendar %r' % physical_path(site) if cooldown(name, timedelta(hours=6)): return transaction.commit() # commit earlier stuff; fresh transaction try: for rdfcal in site.objectValues(['RDF Calendar']): rdfcal.manage_updateChannels() except: site.log_current_error() transaction.abort() else: transaction.get().note("RDFCalendar cron %r" % physical_path(site)) transaction.commit()
def linkchecker_cron(site, hb): """ Run the link checker """ import transaction name = 'site link checker %r' % physical_path(site) if cooldown(name, timedelta(days=7)): return transaction.commit() # commit earlier stuff; fresh transaction try: for link_checker in site.objectValues(['Naaya LinkChecker']): if hasattr(link_checker, 'cronCheck'): link_checker.cronCheck() except: site.log_current_error() transaction.abort() else: transaction.get().note("LinkChecker cron %r" % physical_path(site)) transaction.commit()
def sync_on_heartbeat(site, hearthbeat): if cooldown('glossary sync %r' % ofs_path(site), timedelta(days=7)): return for glossary in site.objectValues(NAAYAGLOSSARY_CENTRE_METATYPE): glossary.manage_perform_sync()
def feedUpdateSubscriber(site, hb): if cooldown('remote channels %r' % ofs_path(site), timedelta(hours=6)): return site.updateRemoteChannels(site.get_site_uid())