SmartOps Logo

 

Resources Button

Scheduling Intelligent Agent Processes

MilramX Control

IAPs are launched and run under the control of a Launcher process, which runs continuously, typically as a Windows Service. This is so that the Launcher will be automatically started in the event of a power failure or a processor reboot.

The Launcher process takes its IAP scheduling information from the MilramX Control database. This specifies how often the IAP is to be run, between which hours, whether it is to retrieve all the specified data available or just the latest updates, and whether the IAP is to be run once or periodically.

MilramX is designed to be run on a multi-thread/multi-core computer, which can support the execution of multiple IAPs in parallel, as well as software such as the IIS webserver and SQL Server.

When MilramX is installed and configured, the number of IAPs which can be run at the same time is configured, depending on the number of available cores. This is normally one IAP at a time for 6 cores or less but can extend to running 8 or more IAPs in parallel on multi-core processors, such as Intel i9 and AMD Ryzex 9 processors.

The Launcher runs in a loop, typically with a ten second delay, between loops.

On each loop, the Launcher:

  1. Monitors running IAPs and terminates any IAP that has run longer than its specified run-time. This us to recover processor resources from IAPs that are hung in a loop or hung trying to read or write using third party libraries, which may have bugs.
  2. Determines how many available “slots” (allocated threads) it has available to run new IAPs.
  3. If there are one or more slots then it picks the most important IAP (based on the IAPs importance level, such as rush, normal, low) that is scheduled to be run.
  4. The Launcher then runs the selected IAP by executing the IAP’s Python script.
  5. The Python script then links in all the needed DLLs (Dynamic Linked Libraries) needed for IAP execution.
  6.  The Launcher then  sets the IAPs Windows process priority to below normal so that its execution will not interfere with other software (such as the BellHawk barcode data collection software) running on the same computer.
  7. The Launcher then passes any needed argument data to the IAP.
  8. The Launcher then loops back to step 2 and runs another IAP  in parallel if it has a slot available.
  9. The Launcher does this until it has no more available Slots
  10. The Launcher then sleeps for 10 seconds or so to give other processes CPU time to run and loops back to step 1.

When an IAP finishes its assigned task, such as moving updated data from one system to another, it terminates its own process. Thereby freeing up the computer resources used by the IAP. And, if the IAP does not terminate itself within a designated time, the Launcher terminates the process.

This enables MilramX to keep scheduling IAPs 24x7 even though a IAP may hang or not perform correctly.

In addition to the databases or systems that the system is configured to grant access to the IAP, the IAPs have access to the Control database, where additional information, such as character set transformation information is kept. IAPs also have access to a daily log file where errors and warnings are logged.

MilramX comes with a web-browser interface through which the scheduling data in the Control file can be updated. This interface also gives access to the status of the IAPs including any error or warning messages they generate.

 If the Launcher or any IAP or the DLLs generate error messages these are logged in the daily log file and can also be sent as an Email alert to an IT person. The IT person can then come in remotely through the Sys Admin browser screen and have full access to the log file, the error and warning messages generated, as they will to the databases (in HLDO format.) This is to allow diagnosis and correction of data access and information exchange issues, without shutting down MilramX.

Please click here to learn more about Why use Intelligent Agents?

  User Manuals About MilramX Data Sheets Background


Copyright © SmartOpsMgt LLC 2026