def process(self, request): task = Task(self, request) self.listener.task_created(task) if self.workers.are_available: task.accept() worker = self.workers.acquire_one() task.assign_to(worker) else: self.tasks.put(task)
def fake_request(self, operation, on_success=lambda: None, on_error=lambda: None): request = SQuery(Task(self.fake_client()), operation, 1, lambda s: None) request.on_error = on_error request.on_success = on_success return request
def process(self, request): self.listener.arrival_of(request) task = Task(request) if self.workers.are_available: request.accept() worker = self.workers.acquire_one() worker.assign(task) else: self.tasks.put(task)
def do_test_response_time(self, sent_at, replied_at): sender = MagicMock() type(sender.schedule).time_now = PropertyMock(side_effect = [sent_at, replied_at] ) request = Query(Task(sender), "foo_operation", 1, lambda s: None) recipient = MagicMock() request.send_to(recipient) request.reply_success() self.assertEqual(replied_at - sent_at, request.response_time)
def test_response_time_on_error(self): sender = MagicMock() sender.schedule.time = MagicMock(return_value = (5, 10, 15)) request = Query(Task(sender), "foo_operation", 1, lambda s: None) recipient = MagicMock() request.send_to(recipient) request.reply_error() with self.assertRaises(AssertionError): request.response_time
def invoke(self): def post_processing(result): if result.is_successful: self.on_success() elif result.is_erroneous: self.on_error() else: pass self.environment.define(Symbols.TASK, Task()) env = self.environment.create_local_environment(self.environment) env.define(Symbols.WORKER, self) Evaluation(env, self.body, self.factory, post_processing).result
def a_running_task(self): task = Task(self.fake_client()) task.status = TaskStatus.BLOCKED # A regular evaluation would block it after sending the request return task
def invoke(self): task = Task(self, ClientRequest()) task.accept() task.assign_to(self._new_worker())