示例#1
0
文件: main.py 项目: henrique/DistEvo
 def getFromDB():
     #l = {}
     #cur_iter = Job.currentIteration()
     logging.info("Get all jobs from db")
     #l['iteration'] = cur_iter
     
     jobs = Job.getAll()
     return Job.dump(jobs)
示例#2
0
 def loadJobs(self):
     '''
     Load jobs from database and index them use hour
     '''
     self._lock.acquire()
     try:
         for job in Job.getAll():
             self.loadJob(job)
         self.indexJobs()
         self._lock.release()
     except Exception, e:
         self._lock.release()
         raise e;
示例#3
0
文件: main.py 项目: henrique/DistEvo
 def put(self):
     logging.info('put all jobs received')
     
     if memcache.get(PutAllJobs._lockKey) is not None:
         logging.warn('jobs locked by another caller')
         self.error(204)
         return
     else:
         memcache.set(PutAllJobs._lockKey, True, 5) #5s
     
     data_string = self.request.body
     decoded = json.loads(data_string)
     logging.info(json.dumps(decoded, indent=2))
     
     if decoded.has_key('jobs'):
         jobs = decoded['jobs']
         logging.info('count jobs: ' + str(len(jobs)))
         
         data = Job.getAll()
         if data is not None:
             if data.count(1) > 0:
                 arch = Archive(key_name=str(data[0].iteration))
                 arch.jobs = Job.dump(data)
                 pop = Pop.all().get() #get current population to archive
                 if pop is not None:
                     arch.pop = pop.pop
                     arch.vals = pop.vals
                 arch.put()
         
         Job.putAll(jobs)
         memcache.delete(GetAllJobs.cachekey)
         memcache.delete(PutAllJobs._lockKey)
         
         email = self.request.get("email")
         if email:
             logging.info(email)
             from google.appengine.api import mail
             mail.send_mail(sender=email, to=email, subject="New iteration started", body=data_string)