Applications are the top-level organizational unit in SchedulerX. Create an application before you create jobs, then use the Applications page to monitor connected workers, manage access permissions, and delete applications.
Create an application
The creation wizard has two steps: Basic Configuration and Notification Configuration.
Prerequisites
A SchedulerX instance in the target region and namespace
Procedure
Log on to the SchedulerX console.
In the top navigation bar, select a region.
In the left-side navigation pane, click Applications.
On the Applications page, select a namespace and click Create application.
In the Basic Configuration step, configure the following parameters and click Next Step.
Basic information
| Parameter | Description | Default |
|---|---|---|
| Application Name | Name of the application. | N/A |
| Application ID | Unique identifier within the namespace. Also becomes the job group ID after the application connects to SchedulerX. Must be unique in the namespace; otherwise, the application fails to be created. You can reuse the Application Name value. | N/A |
| Description | Optional description of the application (64-character limit). | N/A |
| app type | Select general app for standard deployments, or k8s App to deploy in a Kubernetes cluster with Kubernetes job support. | general app |
| Edition | Edition of SchedulerX for this application. Select based on your requirements. | Professional |
| Log Server | When enabled, configure Log4j or Logback to view scheduling logs for all jobs, including distributed jobs, directly in the console. | Enabled |
The Log Server parameter is unavailable for general app applications on the Basic edition. This feature is automatically disabled if no write operation occurs within one year. Re-enable it manually if needed.
Machine Instance busy configuration
These thresholds determine when a worker is considered busy.
| Parameter | Description | Default |
|---|---|---|
| load5 | 5-minute CPU load threshold. If vCPUs used in the previous 5 minutes exceed this value, the worker is marked as busy. Set to 0 to disable this check. | 0 |
| Memory usage | If the average memory usage over the previous 5 minutes exceeds this percentage, the worker is marked as busy. | 90% |
| Disk Usage | If disk usage exceeds this percentage, the worker is marked as busy. | 95% |
| Whether to trigger a busy machine | Specify whether to continue to trigger jobs when the worker is busy. | Enabled |
Advanced Configuration
| Parameter | Description | Default |
|---|---|---|
| Maximum number of tasks | Maximum number of jobs supported by an instance group. | 1000 |
| Automatic expansion | Enable automatic scaling. When enabled, configure the Number of global tasks parameter. | Disabled |
| Flow Control | Enable traffic throttling. When enabled, configure the Number of concurrent task instances parameter. | Disabled |
| Number of concurrent task instances | Maximum number of job instances that can run simultaneously for this application. Instances that exceed this limit wait in a queue. | 0 |
| Calendar | If you set this parameter to Specify calendar, select Financial day (trading days for financial business) or Workday (standard working days) from the drop-down list. | Daily scheduling |
Configure notifications
In the Notification Configuration step, configure the Notification channel and Notify contact parameters. Notification recipients:
Contact group -- All contacts in the group receive notifications. To create a contact group, see Create a notification contact and a notification contact group.
Contact -- Add one or more individual contacts. If no contacts exist, click Add contact and then click Go to create a contact to create one.
Notification channels:
Channel Description SMS Text message alerts Mail Email alerts webhook Webhook-based alerts (DingTalk, WeCom, Lark, or custom) Telephone Phone call alerts Click Complete. The application list refreshes automatically after creation.
After creation, note the following values displayed in the application list:
Application ID -- Required for agent initialization. This value is also the unique identifier of the job group.
Application key -- Required for SDK requests to authenticate API calls. Do not share this key with other users.
Configure a webhook
SchedulerX supports WeCom, Lark, and DingTalk webhooks. Specify multiple webhook bot URLs by separating them with commas (,).
For webhook setup instructions, see:
For DingTalk chatbot webhooks, specify the keyword SchedulerX (case-sensitive). Without this keyword, alerts are not delivered.
For custom webhooks, make sure the endpoint can parse the following JSON format:
curl 'https://oapi.xxxxxxx' \
-H 'Content-Type: application/json' \
-d '{
"msgtype": "text",
"text": {
"content": "Details of the alert triggered in SchedulerX"
},
"at": {
"isAtAll": false
}
}'View connected workers
After you connect an application to SchedulerX, check the Executors column on the Applications page to verify worker connectivity.
On the Applications page, check the number in the Executors column.
A value of
0means no workers are connected to the application. Click Access Config to view the agent configuration required to connect workers.Click the number in the Executors column or click Access Config to view connected workers and their configuration.
Worker status details
Each worker IP address is followed by a number in parentheses that indicates the count of SchedulerX agents running on that worker. Typically, only one agent runs per worker, but multiple agents are supported.
Workers are in one of two states: Health (normal) or Busy (one or more thresholds exceeded).
By default, SchedulerX does not schedule jobs to busy workers. If all workers are busy, no jobs are scheduled.
To allow scheduling on busy workers, click Edit in the Operation column of the application. In the panel that appears, disable the Whether to trigger a busy machine switch in the Machine Instance busy configuration section.
Grant RAM user permissions
Grant Resource Access Management (RAM) users access to an application by using either an Alibaba Cloud account or a RAM user with sufficient privileges.
On the Applications page, find the target application and click Authorization in the Operation column.
Follow the prompts to configure RAM user permissions.
If the system displays you do not have the required permissions after you click Authorization, attach the following custom policy to the RAM user through the Alibaba Cloud account:{
"Version": "1",
"Statement": [
{
"Action": "ram:ListUsers",
"Resource": "*",
"Effect": "Allow"
}
]
}Delete an application
If you no longer need an application, you can delete it.
Deleting an application permanently removes the application and all associated tasks and workflows. To restore an accidentally deleted application, contact technical support through the DingTalk group (23103656).
On the Applications page, find the target application and click Delete in the Operation column.
In the Delete application dialog box, confirm the application information, enter the application name, and click OK.