cubicweb/hooks/__init__.py
changeset 11986 4d414ecf8416
parent 11767 432f87a63057
child 12012 f7ff5217a02f
equal deleted inserted replaced
11985:08398df041b4 11986:4d414ecf8416
    27     """start task to cleanup transaction data"""
    27     """start task to cleanup transaction data"""
    28     __regid__ = 'cw.looping-tasks.transactions-cleanup'
    28     __regid__ = 'cw.looping-tasks.transactions-cleanup'
    29     events = ('server_startup',)
    29     events = ('server_startup',)
    30 
    30 
    31     def __call__(self):
    31     def __call__(self):
       
    32         if self.repo._tasks_manager is None:
       
    33             return
    32         # XXX use named args and inner functions to avoid referencing globals
    34         # XXX use named args and inner functions to avoid referencing globals
    33         # which may cause reloading pb
    35         # which may cause reloading pb
    34         lifetime = timedelta(days=self.repo.config['keep-transaction-lifetime'])
    36         lifetime = timedelta(days=self.repo.config['keep-transaction-lifetime'])
    35         def cleanup_old_transactions(repo=self.repo, lifetime=lifetime):
    37         def cleanup_old_transactions(repo=self.repo, lifetime=lifetime):
    36             mindate = datetime.utcnow() - lifetime
    38             mindate = datetime.utcnow() - lifetime
    47     """start task to update datafeed based sources"""
    49     """start task to update datafeed based sources"""
    48     __regid__ = 'cw.looping-tasks.update-feeds'
    50     __regid__ = 'cw.looping-tasks.update-feeds'
    49     events = ('server_startup',)
    51     events = ('server_startup',)
    50 
    52 
    51     def __call__(self):
    53     def __call__(self):
       
    54         if self.repo._tasks_manager is None:
       
    55             return
    52         def update_feeds(repo):
    56         def update_feeds(repo):
    53             # take a list to avoid iterating on a dictionary whose size may
    57             # take a list to avoid iterating on a dictionary whose size may
    54             # change
    58             # change
    55             for uri, source in list(repo.sources_by_uri.items()):
    59             for uri, source in list(repo.sources_by_uri.items()):
    56                 if (uri == 'system'
    60                 if (uri == 'system'
    69     """start task to cleanup old data imports (ie datafeed import logs)"""
    73     """start task to cleanup old data imports (ie datafeed import logs)"""
    70     __regid__ = 'cw.looping-tasks.dataimports-cleanup'
    74     __regid__ = 'cw.looping-tasks.dataimports-cleanup'
    71     events = ('server_startup',)
    75     events = ('server_startup',)
    72 
    76 
    73     def __call__(self):
    77     def __call__(self):
       
    78         if self.repo._tasks_manager is None:
       
    79             return
    74         def expire_dataimports(repo=self.repo):
    80         def expire_dataimports(repo=self.repo):
    75             for uri, source in repo.sources_by_uri.items():
    81             for uri, source in repo.sources_by_uri.items():
    76                 if (uri == 'system'
    82                 if (uri == 'system'
    77                     or not repo.config.source_enabled(source)):
    83                     or not repo.config.source_enabled(source)):
    78                     continue
    84                     continue