server/sources/datafeed.py
branchstable
changeset 7443 c10164464afc
parent 7351 ed66f236715d
child 7444 9bb8f89fd31c
child 7641 790038f88b8b
equal deleted inserted replaced
7437:a1f48d7c8a03 7443:c10164464afc
   116         parser.del_schema_config(schemacfg, checkonly)
   116         parser.del_schema_config(schemacfg, checkonly)
   117 
   117 
   118     def fresh(self):
   118     def fresh(self):
   119         if self.latest_retrieval is None:
   119         if self.latest_retrieval is None:
   120             return False
   120             return False
   121         return datetime.now() < (self.latest_retrieval + self.synchro_interval)
   121         return datetime.utcnow() < (self.latest_retrieval + self.synchro_interval)
   122 
   122 
   123     def pull_data(self, session, force=False, raise_on_error=False):
   123     def pull_data(self, session, force=False, raise_on_error=False):
   124         if not force and self.fresh():
   124         if not force and self.fresh():
   125             return {}
   125             return {}
   126         if self.config['delete-entities']:
   126         if self.config['delete-entities']:
   148                 byetype.setdefault(etype, []).append(str(eid))
   148                 byetype.setdefault(etype, []).append(str(eid))
   149             self.error('delete %s entities %s', self.uri, byetype)
   149             self.error('delete %s entities %s', self.uri, byetype)
   150             for etype, eids in byetype.iteritems():
   150             for etype, eids in byetype.iteritems():
   151                 session.execute('DELETE %s X WHERE X eid IN (%s)'
   151                 session.execute('DELETE %s X WHERE X eid IN (%s)'
   152                                 % (etype, ','.join(eids)))
   152                                 % (etype, ','.join(eids)))
   153         self.latest_retrieval = datetime.now()
   153         self.latest_retrieval = datetime.utcnow()
   154         session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s',
   154         session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s',
   155                         {'x': self.eid, 'date': self.latest_retrieval})
   155                         {'x': self.eid, 'date': self.latest_retrieval})
   156         return parser.stats
   156         return parser.stats
   157 
   157 
   158     def before_entity_insertion(self, session, lid, etype, eid, sourceparams):
   158     def before_entity_insertion(self, session, lid, etype, eid, sourceparams):