def getexecutor(name): sm = None name = name.lower() try: if name == 'server': from taskqueue import get_ServerManager sm = get_ServerManager(make_server=True, logger=True) logging.info("Opening a socket at %s", sm.address) sm.start() e = sm.Server() elif name == 'inline': e = executors.InlineExecutor() elif name == 'daemon': from taskqueue import client e = client.get_server() yield e finally: if sm: sm.shutdown()
def run(self): if self.after: log.debug("Waiting on %d tasks.", len(self.after)) server = get_server() tid = None try: while self.after: tid = self.after.pop() try: server.wait(tid, TIMEOUT) except TimeoutError: self.after.append(tid) log.debug("Task %r not ready") except Exception as e: log.info("Task '%s' erred (%r), aborting", tid, e) raise log.debug("Task running: %s", self.tid) rc = self.func() log.debug("Finished %r", self.tid) return rc
def kickstart(request, path): config = build_config(path, request) verb = request.GET['verb'] verb = verb.split(',') email = request.GET.get('email') client.ensure_daemon() executor = client.get_server() for v in verb: if email: config = main.process('allplots', config, executor=executor) build_email(request, path, config) elif v == 'parse': # we've already parsed in `build_config` above. pass else: # main.process handles the rest of the verbs, or errors config = main.process(v, config, executor=executor) return HttpResponse( json.dumps(sanitize_config_for_client(config)), content_type="application/json")
def get_server(): from taskqueue.client import get_server return get_server()