Exemple #1
0
 def _run_task_inner_function(task: Task, job: Job) -> Tuple[Job, bool]:
     task_succeeded = False
     try:
         job.variables = task.inner_function(**job.variables)
         task_succeeded = True
     except Exception as e:
         logger.debug(f"Failed job: {job}. Error: {e}.")
         task.exception_handler(e, job)
     finally:
         return job, task_succeeded
Exemple #2
0
 def _create_job_from_raw_job(self, response) -> Job:
     return Job(key=response.key, _type=response.type,
                workflow_instance_key=response.workflowInstanceKey,
                bpmn_process_id=response.bpmnProcessId,
                workflow_definition_version=response.workflowDefinitionVersion,
                workflow_key=response.workflowKey,
                element_id=response.elementId,
                element_instance_key=response.elementInstanceKey,
                custom_headers=json.loads(response.customHeaders),
                worker=response.worker,
                retries=response.retries,
                deadline=response.deadline,
                variables=json.loads(response.variables),
                zeebe_adapter=self)
Exemple #3
0
def random_job(task: Task = task_builder.build_task(
    lambda x: {"x": x},
    TaskConfig("test", lambda: None, 10000, 32, 32, [], False, "", [], [])),
               zeebe_adapter: ZeebeAdapter = None) -> Job:
    return Job(_type=task.type,
               key=randint(0, RANDOM_RANGE),
               worker=str(uuid4()),
               retries=randint(0, 10),
               process_instance_key=randint(0, RANDOM_RANGE),
               bpmn_process_id=str(uuid4()),
               process_definition_version=randint(0, 100),
               process_definition_key=randint(0, RANDOM_RANGE),
               element_id=str(uuid4()),
               element_instance_key=randint(0, RANDOM_RANGE),
               variables={},
               custom_headers={},
               deadline=randint(0, RANDOM_RANGE),
               zeebe_adapter=zeebe_adapter)
Exemple #4
0
def random_job(task: Task = Task(task_type="test",
                                 task_handler=lambda x: {"x": x},
                                 exception_handler=lambda x, y, z: x),
               zeebe_adapter: ZeebeAdapter = None) -> Job:
    return Job(_type=task.type,
               key=randint(0, RANDOM_RANGE),
               worker=str(uuid4()),
               retries=randint(0, 10),
               workflow_instance_key=randint(0, RANDOM_RANGE),
               bpmn_process_id=str(uuid4()),
               workflow_definition_version=randint(0, 100),
               workflow_key=randint(0, RANDOM_RANGE),
               element_id=str(uuid4()),
               element_instance_key=randint(0, RANDOM_RANGE),
               variables={},
               custom_headers={},
               deadline=randint(0, RANDOM_RANGE),
               zeebe_adapter=zeebe_adapter)
Exemple #5
0
 def handle_job(job: Job, status_on_deactivate: JobStatus, context):
     if job.status != JobStatus.Running:
         context.set_code(grpc.StatusCode.FAILED_PRECONDITION)
     else:
         job.status = status_on_deactivate
     return context
Exemple #6
0
def default_exception_handler(e: Exception, job: Job) -> None:
    logger.warning(f"Task type: {job.type} - failed job {job}. Error: {e}.")
    job.set_failure_status(f"Failed job. Error: {e}")