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:
Post a Comment