Monday, August 4, 2025

UiPath Job Monitoring & Auto-Prioritization Framework – Developer Guide


 

Objective: To enable APP RPA developers to integrate their processes into the Job Monitoring Automation, which ensures critical pending jobs are prioritized by automatically stopping lower priority running jobs.

1️⃣ Overview

The Job Monitoring Process continuously scans the Orchestrator for pending jobs, compares their priority with currently running jobs, and if needed, stops lower-priority jobs to free up execution slots. This helps ensure that business-critical jobs are executed with minimum delay, maintaining SLAs and operational efficiency.

2️⃣ High-Level Flow

Start → Read Config & Assets → Get Pending Jobs via HTTP → Check Running Jobs → Compare Priorities → If pending > running → Send Stop Signal → Notify via Email Group → End

3️⃣ Developer Responsibilities

To enable job prioritization for your automation, you need to manage/update three assets in the default modern folder:




• JobMonitor_MachineName – List of machine names where job monitor applies (comma-separated text)
• JobMonitor_FolderName – Name of the modern folder/sub folder containing the jobs
• JobMonitor_AlertGroup – Email group to receive job interruption alerts

⚠️ Developers should make sure they prioritize the triggers or the processes in their modern folders before integrating them into the job monitoring process.

 

4️⃣ Process Details

Step-by-step Logic:
1. Read Assets: Machine Names, Folder Name, Email Alert Group
2. Query Pending Jobs via Orchestrator HTTP API
3. Check for Critical Pending Jobs
4. Compare with Running Jobs
5. If a pending job's priority > running job's priority:
   a. Send Stop Signal to running job
   b. Trigger Email Notification to the Alert Group

5️⃣ Priority Comparison Logic

Job Status        | Key Fields Used
------------------|-----------------
Pending           | Process Name, Host Machine, Job Priority
Running           | Same fields as above
Logic             | Stop running job only if pending job priority is higher

6️⃣ Email Notification Format



7️⃣ Best Practices

• Keep your JobMonitor assets clean (ascending order) and check with fellow developers if a machine is being shared.
• Avoid assigning the same priority to all jobs—leverage numeric values or predefined importance.
• Schedule the Job Monitoring Process to run at reasonable intervals (e.g., every 5 minutes).
• Handle edge cases like orphan jobs, concurrent stops, or conflicting asset values.

8️⃣ Example Use Case: Automated Invoice Processing with Priority-Based Scheduling

Scenario:
In the Accounts Payable automation environment, there are two types of invoice-related bots running on the same machine:

1. Invoice Entry Bot
- Triggered ad hoc based on technician inputs via ABBYY OCR
- Assigned Medium priority
- Can run anytime throughout the day

2. Payment Manager Bot
- Scheduled to run at 10:30 AM and 1:00 PM
- Handles critical end-of-day payment approvals
- Assigned Critical priority

Problem:
If the Invoice Entry Bot is already running at 10:30 AM, the Payment Manager Bot is placed in a pending state in Orchestrator.

Resolution:
The Job Monitoring Process detects this situation:
- Finds a Critical-priority job (Payment Manager Bot) in Pending state
- Compares it with the currently running Medium-priority job (Invoice Entry Bot)
- Sends a Stop Signal to the Invoice Entry job
- Notifies the configured alert email group
- Frees the machine so the Payment Manager Bot can run on schedule without delay

This ensures that time-sensitive automation takes precedence over lower-priority background tasks.

No comments: