def _create_one(self): t = random.uniform(self.sleep_range[0], self.sleep_range[1]) task = Task.create( "sleep {t}; echo '{{\"t\": {t}}}' > _output.json".format(t=t), { "foo": "test", "bar": 123 }) self.ps_count += 1 self.num_running += 1 self.num_todo -= 1 task.add_callback(self._on_task_finished)
def test_find(self): tasks = [Task.create("echo %d" % i) for i in range(10)] self.assertEqual(Task.find(5).id, 5) self.assertEqual(Task.find(5), tasks[5])
def test_all(self): tasks = [Task.create("echo %d" % i) for i in range(10)] self.assertEqual(Task.all(), tasks)
def test_create(self): for i in range(10): t = Task.create("echo %d" % i) self.assertEqual(t.id, i) self.assertEqual(t.is_finished(), False) self.assertEqual(len(Task.all()), 10)
def _create_one(self): t = self._t() Task.create("sleep {t}".format(t=t))
import sys from caravan.server import Server from caravan.task import Task if len(sys.argv) != 2: sys.stderr.write("Usage: python <command_file_path>\n") raise RuntimeError("invalid number of arguments") with Server.start(): with open(sys.argv[1]) as f: for line in f: Task.create(line.rstrip()) sys.stderr.write("DONE\n")
import sys from caravan.server import Server from caravan.task import Task from caravan.server_stub import start_stub def stub_sim(task): t = 1 + task.id() % 3 return ({}, t) with start_stub(stub_sim, num_proc=4): tasks1 = [Task.create(f"sleep {1+i%3}") for i in range(5)] Server.await_all_tasks( tasks1) # this method blocks until all the tasks are finished print("all running tasks are complete!") for t in tasks1: print( f"task ID:{t.id()}, rc:{t.rc()}, rank:{t.rank()}, {t.start_at()}-{t.finish_at()}" )
def _create_one(self): t = self._t() task = Task.create("sleep {t}".format(t=t)) if self.n < self.num_jobs: task.add_callback(lambda t: self._create_one() ) self.n += 1
def _create_one(self): t = random.uniform(self.sleep_range[0], self.sleep_range[1]) task = Task.create("sleep {t}".format(t=t)) self.task_count += 1 self.num_running += 1 task.add_callback(self._on_ps_finished)