Exemple #1
0
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()
Exemple #2
0
    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
Exemple #3
0
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")
Exemple #4
0
def get_server():
    from taskqueue.client import get_server
    return get_server()