return [] tserver.run_server(data_gen) disco = Disco(sys.argv[1]) jobs = [] for i, m in enumerate([fun_map1, fun_map2, fun_map3, fun_map4]): jobs.append(disco.new_job( name = "test_waitmany_%d" % (i + 1), input = tserver.makeurl([""] * 5), map = m)) res = [] while jobs: cont = False ready, jobs = disco.results(jobs, timeout = 2000) res += ready for n, r in res: if n.startswith("test_waitmany_3"): if r[0] != "dead": raise Exception("Invalid job status: %s" % n) elif r[0] != "ready": raise Exception("Invalid job status: %s" % n) disco.purge(n) if len(res) != 4: raise Exception("Invalid number of results")
tserver.run_server(data_gen) disco = Disco(sys.argv[1]) num = sum(x['max_workers'] for x in disco.nodeinfo()['available']) print >> sys.stderr, num, "slots available" inputs = tserver.makeurl(range(num * 10)) random.shuffle(inputs) jobs = [] for i in range(5): jobs.append(disco.new_job(name = "test_async_%d" % i, input = inputs[i * (num * 2):(i + 1) * (num * 2)], map = fun_map, reduce = fun_reduce, nr_reduces = 11, sort = False)) time.sleep(1) all = dict(("[%s]" % i, 0) for i in range(num * 10)) while jobs: ready, jobs = disco.results(jobs) for name, results in ready: for k, v in result_iterator(results[1]): all[k] += 1 disco.purge(name) for v in all.values(): if v != 10: raise "Invalid results: %s" % all print "ok"