示例#1
0
文件: main.py 项目: henrique/DistEvo
 def put(self):
     logging.info('put Population received')
     data_string = self.request.body
     logging.info(data_string)
     decoded = json.loads(data_string)
     
     pop = Pop(key_name='curr')
     pop.pop  = json.dumps(decoded['pop'])
     pop.vals = json.dumps(decoded['vals'])
     pop.put()
示例#2
0
文件: main.py 项目: henrique/DistEvo
 def get(self):
     self.response.headers['Content-Type'] = 'application/json'
     logging.info("get population received")
     
     pop = Pop.all().get()
     
     if pop is not None:
         content = json.dumps({
                             'pop': json.loads(pop.pop),
                             'vals': json.loads(pop.vals)
                         }, indent=2)
         logging.info(content)
         self.response.out.write(content)
     else:
         self.error(204)
示例#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)