Overview
The goal of this appjar is to manage and monitor the background processes of an application from a centralised administration view.
Enterprise applications often need to execute recurring tasks automatically: generating reports, sending notifications, cleaning up data, or synchronising with external systems. These tasks are usually implemented as scheduled jobs that run in the background, independently of user interactions. Without a dedicated tool, managing these jobs requires redeployments, configuration changes, or direct access to the server, making it difficult to adjust schedules or diagnose issues at runtime.
Background Processes
The Process Manager appjar allows administrators to register, schedule, and control background processes directly from the application's user interface. A process wraps a Runnable implementation that is already registered in the application. The appjar handles the scheduling and lifecycle management, removing the need to hard-code schedules or restart the application to apply changes.
Scheduling
Each process can be assigned a cron expression that determines when it runs automatically. The schedule is defined as part of the process itself, in two ways: a custom entry field that parses and describes the expression in real time, and a set of common presets for frequently used intervals. A process without a schedule remains unscheduled and can still be triggered manually.
Monitoring and Control
Every process carries two independent statuses. The schedule status — enabled, paused, unscheduled, or task not found — describes what the schedule is doing, while the execution status records whether the task is running at this instant. Keeping them apart means that pausing a schedule never hides the fact that an execution is still in progress, and that a running process does not lose track of the schedule it belongs to. Both statuses are reflected in the administration view as they change, for every administrator watching it.
Administrators can pause, resume, or execute any process on demand without waiting for its next scheduled run. An execution history is available for each process, recording the start time, end time, and duration of every past execution, which is useful for diagnosing performance issues or confirming that critical jobs completed as expected.