server/sources/datafeed.py
changeset 7444 9bb8f89fd31c
parent 7399 972ed1843bd8
parent 7443 c10164464afc
child 7446 6fba86efdd09
equal deleted inserted replaced
7442:aee55fb4633c 7444:9bb8f89fd31c
   122         parser.del_schema_config(schemacfg, checkonly)
   122         parser.del_schema_config(schemacfg, checkonly)
   123 
   123 
   124     def fresh(self):
   124     def fresh(self):
   125         if self.latest_retrieval is None:
   125         if self.latest_retrieval is None:
   126             return False
   126             return False
   127         return datetime.now() < (self.latest_retrieval + self.synchro_interval)
   127         return datetime.utcnow() < (self.latest_retrieval + self.synchro_interval)
   128 
   128 
   129     def pull_data(self, session, force=False, raise_on_error=False):
   129     def pull_data(self, session, force=False, raise_on_error=False):
   130         if not force and self.fresh():
   130         if not force and self.fresh():
   131             return {}
   131             return {}
   132         if self.config['delete-entities']:
   132         if self.config['delete-entities']:
   154                 byetype.setdefault(etype, []).append(str(eid))
   154                 byetype.setdefault(etype, []).append(str(eid))
   155             self.error('delete %s entities %s', self.uri, byetype)
   155             self.error('delete %s entities %s', self.uri, byetype)
   156             for etype, eids in byetype.iteritems():
   156             for etype, eids in byetype.iteritems():
   157                 session.execute('DELETE %s X WHERE X eid IN (%s)'
   157                 session.execute('DELETE %s X WHERE X eid IN (%s)'
   158                                 % (etype, ','.join(eids)))
   158                                 % (etype, ','.join(eids)))
   159         self.latest_retrieval = datetime.now()
   159         self.latest_retrieval = datetime.utcnow()
   160         session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s',
   160         session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s',
   161                         {'x': self.eid, 'date': self.latest_retrieval})
   161                         {'x': self.eid, 'date': self.latest_retrieval})
   162         return parser.stats
   162         return parser.stats
   163 
   163 
   164     def before_entity_insertion(self, session, lid, etype, eid, sourceparams):
   164     def before_entity_insertion(self, session, lid, etype, eid, sourceparams):