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()
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)
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)