Aras Innovator Platform

Scheduled Jobs Processing

Scheduled Jobs are just templates of Jobs with a schedule to define when the Job must be instantiated autonomously.

Once a Job is created by CreateJob Server Method, it is saved in the database and published to the queue for processing. To manage asynchronous execution, Job execution is implemented with an in-memory queue.

A special background service implemented as an extension of the innovator Agent Service is set to listen to the queue and process Jobs from it. This Service has a limited number of parallel threads to limit server overload.

Every Job is then processed by a Worker Thread as a self-request to Aras Innovator Server to execute the Server Method configured in the Job.

Warning
Since Job Execution Queue is implemented as Innovator Server in-memory queue, it is possible that Jobs might remain in Awaiting status if Innovator server crashes, is restarted due to IIS reset or autoscaler event.

Warning
Worker Thread sends requests to Innovator Server. Failed Jobs can happen in case of network issues or timeouts.

Warning
Jobs can remain In Progress state even if the actual job execution completed successfully. This can happen in case of critical failure of Innovator Server, IIS reset or lost connection to database when the job is completing execution.

Job is a unit of work to be executed asynchronously from its creation moment. Job is implemented via ItemType Job.

Property

Description

ID Unique identifier of Job
Parameters Contains a Json dictionary passed by the configured Scheduled Job see Section 3.2.1.2 - Parameters property
UserID Run As User ‘s User, as configured in the Scheduled Job see Section 3.2.1.1 - Run As User property
Status Represent current status of Job. Implemented as list property. Following States are implemented: Awaiting – Job is created, not taken for execution yet. In Progress – Job is being executed. Failed – Job method returned error result or an unhandled exception was thrown during method call. Success – Job was successfully executed.
Result Message Contains the text with Job execution result if server method returns result, otherwise contains details of the thrown exception.
Scheduled For Time of scheduled execution. Implemented as date property. It is stored as UTC time in the database and usually transformed to Client time zone when is fetched from Innovator Server.
Started On Time of actual execution start and corresponding to the transition to In Progress status. Implemented as date property. It is stored as UTC time in the database and usually transformed to Client time zone when is fetched from Innovator Server.
Finished On Time when Job execution completed and corresponding to the transition to either Success or Failed status. Implemented as date property. It is stored as UTC time in the database and usually transformed to Client time zone when is fetched from Innovator Server.