def send_job_request(self, current_request): """Register a newly created job request""" self._assert_request_state(current_request, JOB_UNKNOWN) gearman_job = current_request.job # Handle the I/O for requesting a job - determine which COMMAND we need to send cmd_type = submit_cmd_for_background_priority_run_later( current_request.background, current_request.priority, current_request.run_later) outbound_data = self.encode_data(gearman_job.data) if current_request.run_later: self.send_command(cmd_type, task=gearman_job.task, unique=gearman_job.unique, when_to_run=gearman_job.when_to_run, data=outbound_data) else: self.send_command(cmd_type, task=gearman_job.task, unique=gearman_job.unique, data=outbound_data) # Once this command is sent, our request needs to wait for a handle current_request.state = JOB_PENDING self.requests_awaiting_handles.append(current_request)
def test_send_job_request(self): current_request = self.generate_job_request() gearman_job = current_request.job for priority in (PRIORITY_NONE, PRIORITY_HIGH, PRIORITY_LOW): for background in (False, True): current_request.reset() current_request.priority = priority current_request.background = background self.command_handler.send_job_request(current_request) queued_request = self.command_handler.requests_awaiting_handles.popleft() self.assertEqual(queued_request, current_request) expected_cmd_type = submit_cmd_for_background_priority_run_later(background, priority, False) self.assert_sent_command(expected_cmd_type, task=gearman_job.task, data=gearman_job.data, unique=gearman_job.unique)
def send_job_request(self, current_request): """Register a newly created job request""" self._assert_request_state(current_request, JOB_UNKNOWN) gearman_job = current_request.job # Handle the I/O for requesting a job - determine which COMMAND we need to send cmd_type = submit_cmd_for_background_priority_run_later(current_request.background, current_request.priority, current_request.run_later) outbound_data = self.encode_data(gearman_job.data) if current_request.run_later: self.send_command(cmd_type, task=gearman_job.task, unique=gearman_job.unique, when_to_run=gearman_job.when_to_run, data=outbound_data) else: self.send_command(cmd_type, task=gearman_job.task, unique=gearman_job.unique, data=outbound_data) # Once this command is sent, our request needs to wait for a handle current_request.state = JOB_PENDING self.requests_awaiting_handles.append(current_request)
def test_send_job_request(self): current_request = self.generate_job_request() gearman_job = current_request.job for priority in (PRIORITY_NONE, PRIORITY_HIGH, PRIORITY_LOW): for background in (False, True): current_request.reset() current_request.priority = priority current_request.background = background self.command_handler.send_job_request(current_request) queued_request = self.command_handler.requests_awaiting_handles.popleft( ) self.assertEqual(queued_request, current_request) expected_cmd_type = submit_cmd_for_background_priority_run_later( background, priority, False) self.assert_sent_command(expected_cmd_type, task=gearman_job.task, data=gearman_job.data, unique=gearman_job.unique)