hooks/__init__.py
branchstable
changeset 7677 134613d3b353
parent 7648 5d5d98930247
child 7708 45be3a9debe6
equal deleted inserted replaced
7670:6397a9051f65 7677:134613d3b353
    44                     'DELETE FROM deleted_entities WHERE dtime < %(time)s',
    44                     'DELETE FROM deleted_entities WHERE dtime < %(time)s',
    45                     {'time': mindate})
    45                     {'time': mindate})
    46                 session.commit()
    46                 session.commit()
    47             finally:
    47             finally:
    48                 session.close()
    48                 session.close()
    49         self.repo.looping_task(60*60*24, cleanup_old_transactions, self.repo)
    49         if self.repo.config['undo-support']:
       
    50             self.repo.looping_task(60*60*24, cleanup_old_transactions,
       
    51                                    self.repo)
    50         def update_feeds(repo):
    52         def update_feeds(repo):
    51             session = repo.internal_session()
    53             # don't iter on repo.sources which doesn't include copy based
    52             try:
    54             # sources (the one we're looking for)
    53                 # don't iter on repo.sources which doesn't include copy based
    55             for source in repo.sources_by_eid.itervalues():
    54                 # sources (the one we're looking for)
    56                 if (not source.copy_based_source
    55                 for source in repo.sources_by_eid.itervalues():
    57                     or not repo.config.source_enabled(source)
    56                     if (not source.copy_based_source
    58                     or not source.config['synchronize']):
    57                         or not repo.config.source_enabled(source)
    59                     continue
    58                         or not source.config['synchronize']):
    60                 session = repo.internal_session()
    59                         continue
    61                 try:
    60                     try:
    62                     stats = source.pull_data(session)
    61                         stats = source.pull_data(session)
    63                     if stats.get('created'):
    62                         if stats.get('created'):
    64                         source.info('added %s entities', len(stats['created']))
    63                             source.info('added %s entities', len(stats['created']))
    65                     if stats.get('updated'):
    64                         if stats.get('updated'):
    66                         source.info('updated %s entities', len(stats['updated']))
    65                             source.info('updated %s entities', len(stats['updated']))
    67                 except Exception, exc:
    66                         session.commit()
    68                     session.exception('while trying to update feed %s', source)
    67                     except Exception, exc:
    69                 finally:
    68                         session.exception('while trying to update feed %s', source)
    70                     session.close()
    69                         session.rollback()
       
    70                     session.set_pool()
       
    71             finally:
       
    72                 session.close()
       
    73         self.repo.looping_task(60, update_feeds, self.repo)
    71         self.repo.looping_task(60, update_feeds, self.repo)