Hey Nikhil, a Job is the execution of a process on one or multiple Robots. After creating a process, the next step is to execute it by creating a job. When creating a new job, you can assign it to specific Robots or you can allocate them dynamically. If a Robot goes offline while executing a job, when it comes back online, its execution is picked up from where it left off. Jobs assigned to specific robots have the advantage of having execution priority over jobs assigned dynamically, however, the latter gives you the possibility to execute the same process multiple times on whatever Robot becomes available first.
Jobs can have the following states:
- Pending - A job is in this state if it is queued for the same Robot or it is trying to establish a connection with the Robot.
- Running - A job is in this state if it has established a connection to the Robot and it started executing the assigned process.
- Successful - A job is in this state if it has been executed correctly by the Robot and it has finished running, or has been stopped using the Stop button.
- Faulted - A job is in this state if it failed to start or the process threw an unhandled error during execution.
- Stopping - An intermediary state that is triggered if you clicked the Stop button in Orchestrator.
- Terminating - An intermediary state that is triggered if you clicked the Kill button in Orchestrator.
- Stopped - A job is in this state if it stopped (by using the Kill button, or by canceling it from the system tray) before it finished executing without throwing any errors.