Java SDK

更新时间:
复制 MD 格式

These release notes for the SchedulerX Java SDK cover new features, enhancements, and fixed issues.

SDK Version Lifecycle and Upgrade Guide

Version Lifecycle States

SchedulerX SDK versions go through three lifecycle stages: StableExpiredOffline. The MSE console displays the lifecycle status of the client SDK for each application in the following locations:

  • Job Management and Workflow Management pages: A warning icon appears next to the application name when the client SDK is expired or offline. Hover over the icon to view the status message.

  • Application Management page: A text prompt appears below the instance count when the client SDK is expired or offline.

  • Worker Instances view: A color-coded status tag appears next to the version number for each worker instance.

Status

Console display

Description

Stable

No tag

The SDK version is fully supported.

Expired

Yellow Expired tag

The SDK version has expired. Upgrade as soon as possible.

Deprecated

Red Deprecated tag

The SDK version has gone offline. No SLA commitment is provided.

Note

When the MSE console detects that an application has worker instances running an offline SDK version, it automatically displays a dialog titled There are clients running offline versions. In the dialog, click Upgrade Version to open the Java SDK release notes and select a target upgrade version.

Upgrade Recommendations

You can upgrade the SchedulerX Java SDK directly to the latest version (for example, 1.13.5). Because the SDK runs as part of your business application, we recommend running integration tests after upgrading to verify compatibility and identify any potential JAR conflicts before deploying to production.

To select a target upgrade version, review the version history tables in this document. Each entry lists the features added, optimizations made, and issues fixed in that release, helping you identify a version that meets your compatibility requirements.

Impact of Offline SDK Versions

When a client SDK version reaches Offline status:

  • Existing scheduled tasks are not affected. An offline client SDK version does not interrupt the execution of currently configured scheduled tasks.

  • No SLA commitment is provided. Offline SDK versions are not covered under the service level agreement.

  • Technical support requires an upgrade. If you need technical assistance, you must upgrade your client SDK to the latest version before support can be provided.

We recommend upgrading to the latest SDK version as soon as possible to maintain SLA coverage and access to technical support.

2026

Version

Change type

Description

Release date

Related documentation

1.13.5

New feature

Adds support for the graceful shutdown of second_delay tasks.

Script tasks can now pass data between upstream and downstream tasks within a workflow.

March 20, 2026

None

1.13.4

Optimization

Optimized CPU metric collection in K8s application mode for cgroup v2.

February 13, 2026

None

1.13.3

Optimization

Improves Spring task compatibility with Spring 7.x.

January 15, 2026

None

2025

Version

Change type

Description

Release date

Related documents

1.13.1

bug fixes

  • Fixed premature heartbeat registration in Spring parent-child contexts.

  • Fixed Map tasks stopping unexpectedly during an SDK upgrade from an earlier version.

July 28, 2025

N/A

1.13.0

new feature

Added support for link encryption to protect sensitive data in transit between the client and server in Professional Edition applications.

June 18, 2025

N/A

1.12.7

optimization

  • Refactored placeholder logic for script tasks to fix replacement failures from Spring conflicts.

  • Upgraded the Spring version to 5.3.31 to fix a security vulnerability.

May 29, 2025

N/A

bug fixes

  • Enabled automatic retry on failure for sub-tasks in shard 0 of broadcast and sharded tasks.

  • Fixed an issue where the context provided an incorrect triggerType during the manual rerun of a visual MapReduce job.

N/A

1.12.5

optimization

Improved Spring task compatibility when other components implement TaskScheduler.

February 8, 2025

N/A

1.12.3

new feature

  • Added support for configuring the SDK log directory.

    • Add -Dschedulerx.log.path=<log_root_path> to the startup command. The final log path is {schedulerx.log.path}/logs/schedulerx.

  • Added support for overriding the SDK's logback configuration and exporting logs to your own Logstores.

January 3, 2025

N/A

optimization

  • Improved compatibility of Spring tasks with Spring 6.x.

  • Fixed an H2 DriverClass NotFound exception caused by a missing driver class configuration for a business JDBC connection.

  • Fixed a race condition in the Map task status check that caused task failures.

2024

Version

Type

Description

Release date

References

1.12.2

Fix

  • Fixed a security vulnerability in visual MapReduce jobs.

  • Fixed security vulnerabilities in some Akka APIs.

November 20, 2024

None

1.12.1

new feature

  • HTTP agent jobs now support a custom thread pool size.

  • Added support for customizing the logger for SchedulerX log output.

  • Introduced the @SchedulerX annotation, which works with the Spring @Scheduled annotation, enabling SchedulerX to manage some scheduled Spring jobs.

October 12, 2024

None

Improvement

  • Removed the fastjson package to resolve a security vulnerability.

None

1.11.5

Improvement

  • Optimized SLS log output.

  • Fixed an issue where heartbeat reporting was affected by configuration read errors across multiple application groups.

  • Reduced the number of fault-tolerant retries for heartbeat timeout exceptions.

June 17, 2024

None

1.11.4

new feature

Added support for retrieving the workflow ID from JobContext.

March 20, 2024

JobContext parameters

Improvement

  • Reduced the SDK size by removing unused dependencies.

  • Removed the unused Log4j2.xml file from the SDK to prevent log configuration conflicts.

None

1.11.1

new feature

Added support for getting job parameters from environment variables.

February 20, 2024

None

new feature

Added support for application-level isolation.

None

Fix

  • Fixed a security vulnerability in Netty.

  • Fixed a security vulnerability in Logback.

  • Fixed an issue where SchedulerX framework logs would not display due to log conflicts.

None

1.10.14

new feature

Added support for graceful shutdown. Applications now wait for all running jobs to complete before shutting down, ensuring no business impact during releases or restarts.

January 2, 2024

Graceful shutdown for scheduled jobs

new feature

Added support for configuring the distribution rate for subtasks.

None

new feature

Added support for configuring a username and password.

  • spring.schedulerx2.h2DatabaseUser: Sets the user of the H2 built-in database.

  • spring.schedulerx2.h2DatabasePassword: Specifies the password for the H2 built-in database.

Connect a Spring Boot application to SchedulerX

Improvement

Added support for isolation by application group.

None

Improvement

Added support for distribution sorted by worker IP address.

None

Improvement

  • Added support for earlier versions of Spring 4.

  • Scheduled methods in Spring jobs now support any return type.

Spring jobs

Improvement

  • Prevents the Spring container from creating duplicate heartbeat threads upon re-initialization.

  • Added support for automatic restart of Akka Actors if they terminate unexpectedly.

None

Fix

  • Fixed an issue where Spring would immediately return an exception if it failed to read a Processor bean.

  • Fixed an issue introduced in v1.10.x where Map jobs would get stuck.

  • Fixed an issue that prevented a job instance from terminating after the preProcess execution of a broadcast job failed.

  • Fixed an issue where a job instance timeout alert was triggered by residual threads after an abnormal termination.

  • Fixed an issue in shared thread pool mode where a job could get stuck due to a state loss shortly after application startup.

  • Fixed an issue where configuration loading failed if multiple application groups or appKeys contained special characters.

  • Fixed an issue where visual MapReduce jobs could not use Professional Edition features.

None

2023

Version

Type

Description

Release date

References

1.9.6

new feature

Added support for standard and custom templates.

  • Standard templates: You can modify the image and image pull policy.

  • Custom templates: Compatible with native Kubernetes resources. To use this feature, upgrade schedulerx2-plugin-kubernetes to version 1.0.5 or later.

July 4, 2023

None

new feature

You can now distribute map jobs from a random starting position. To enable this, set spring.schedulerx2.mapMasterDispatchRandom=true. The default value is false.

None

new feature

Shell jobs now support common built-in system parameters.

  • schedule.timestamp (The scheduled time for the job)

  • data.timestamp (The data timestamp for the job)

None

1.8.13

new feature

Adjusted the execution thread model.

  • Switched the model to the non-shared thread pool mode.

  • The following parameters are available for the shared thread pool mode:

    • spring.schedulerx2.shareContainerPool=true: Enables the shared thread pool.

    • spring.schedulerx2.sharePoolSize=32: The global size of the shared thread pool. Default: 64.

    • spring.schedulerx2.sharePoolQueueSize=20480: The queue size of the shared thread pool. Default: Integer.MAX_VALUE.

September 8, 2023

None

new feature

Added the following parameters:

  • spring.schedulerx2.broadcastMasterExecEnable=false: Determines whether the master node participates in the execution of a broadcast job. Default value: true.

  • spring.schedulerx2.broadcastDispatchRetryTimes=5: The number of retry attempts for dispatching a broadcast job.

None

optimized feature

Optimized the performance of map jobs during large-scale application deployments and scale-ins.

None

optimized feature

Optimized heartbeat reporting during application startup to prevent slow container startup from causing long job processing times.

None

fixed issue

  • Fixed an issue where jobs were rejected after running for a long time in shared thread pool mode.

  • Fixed an issue that occasionally caused null pointer logs during job status reporting.

  • Fixed an issue in versions after 1.7.x where the thread count for a broadcast job continuously increased.

  • Fixed a memory leak in shared thread pool mode.

  • Fixed an issue where dynamic proxy objects could not execute the Reduce operation.

  • Fixed an issue where acknowledgements for second-level jobs were lost during the merging process.

  • Fixed an issue where Diamond failed to read environment endpoints.

  • Fixed an issue with excessively long heartbeat timeouts when connecting to a public cloud.

  • Fixed an issue where log format alerts were triggered for log4j.

  • Fixed an issue where a standalone job would get stuck if a distribution exception occurred.

  • Fixed a backward-incompatibility with the ClassName:BeanId configuration mode.

  • Corrected the maximum file size limit for Logback standalone logs.

None

2022

Version

Type

Description

Release date

References

1.7.10

new feature

  • Added support for native Spring scheduled jobs.

  • Added support for tracing integration.

August 30, 2022

optimization

Improved the responsiveness of agents during shutdown.

None

fixed issue

  • Fixed an out-of-memory error caused by large volumes of Simple Log Service logs from high-frequency jobs.

  • Fixed a latency issue that occurred when a large number of second-level jobs ran concurrently.

None

1.6.1

fixed issue

Fixed high CPU usage caused by broadcast detection threads for second-level jobs.

August 3, 2022

None

1.6.0

new feature

Added support for Kubernetes job scheduling.

June 24, 2022

None

optimization

  • Made Processor classes compatible with Spring AOP proxy configurations.

  • Improved the content of ERROR log messages that occasionally appear for the available worker monitoring timer.

  • Added log collection support for second_delay jobs.

None

1.5.1.1

new feature

Added support for dynamically enabling or disabling Simple Log Service.

April 19, 2022

None

fixed issue

  • Fixed an incompatibility issue between version 1.5.0.x and Spring Boot 2.0.3.

  • Fixed a potential initialization error for the JobSyncService bean in version 1.5.0.x.

1.5.0.2

new feature

Added support for declarative job definitions in Spring Boot. You can declare namespaces, applications, jobs, and alerts in configuration files to simplify job management. These files can be modified to launch an application in any environment with a single click.

April 1, 2022

Spring Cloud Alibaba scheduled jobs

Visualized MapReduce jobs (formerly parallel computing) support viewing lists, logs, and reruns at the task level. You can also add custom tags to tasks and search for tasks by tag.

Enterprise-grade distributed batch processing

1.4.2

new feature

SchedulerX 2.0 integrates with Simple Log Service. Without modifying your code, you can add a Log4j or Logback configuration to view business logs for each job run (including distributed jobs) in the console.

March 7, 2022

How to integrate Simple Log Service

You can view the runtime stack of a job directly in the console to troubleshoot stuck jobs. To use this feature, upgrade your agent to version 1.4.0 or later.

None

Added support for integrating with executors developed for ElasticJob.

1.3.4

new feature

  • Added support for DataWorks jobs.

  • Added the schedulerx2-plugin-xxljob plugin for compatibility with the XxlJob interface.

January 6, 2022

2021

Version

Type

Description

Release date

References

1.3.2

Optimization

Updated the default Log4j 2 dependency to version 2.15.0.

December 15, 2021

N/A

1.3.0.3

New feature

Enhanced second-delay jobs in standalone mode: You can now distribute the execution of these jobs among idle workers. To enable this in a Spring Boot application, set the following parameter: spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (default: false).

November 26, 2021

N/A

Optimization

Improved the agent's responsiveness during shutdown.

N/A

Fixed issue

  • Fixed an issue that caused a worker's heartbeat to be reported to only a single scheduled service when its agent was connected to multiple instance groups.

  • Fixed potential thread interruptions and null pointer exceptions in second-delay jobs.

  • Fixed a compatibility issue that caused jobs to hang and time out when the SchedulerX agent was integrated with Spring Cloud.

  • Prevented broadcast jobs from being interrupted during concurrent execution.

  • Fixed the worker list not being updated periodically during the execution of second-delay jobs.

  • Fixed an issue where the scanning thread of a second-delay broadcast job failed to terminate upon receiving a stop instruction.

  • Fixed an issue where second-delay broadcast jobs could occasionally hang during a large-scale batched deployment of workers.

N/A

1.2.9.1

Fixed issue

Fixed a compatibility issue that caused jobs to hang and time out when a worker was integrated with Spring Cloud.

August 30, 2021

N/A

1.2.9

New feature

Enhanced second-delay jobs in standalone mode: You can now distribute the execution of these jobs among available workers. Set the parameter spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (default: false).

August 27, 2021

N/A

Fixed issue

Fixed issues with broadcast jobs being interrupted during concurrent execution and the worker list not being updated.

N/A

1.2.8.3

Fixed issue

Fixed an issue where the scanning thread of a second-delay broadcast job failed to terminate upon receiving a stop instruction.

August 13, 2021

N/A

1.2.8.2

Fixed issue

Fixed an issue where second-delay broadcast jobs could occasionally hang during a large-scale batched deployment of workers.

August 6, 2021

N/A

1.2.8

New feature

  • Enhanced broadcast jobs: You can now use postProcess to get the status of all workers by calling JobContext.getTaskStatuses() and their execution results by calling JobContext.getTaskResults().

  • Added sharding support for broadcast jobs: You can now get the shardingNum and shardingId from JobContext to process distributed data based on the worker's index.

  • Enhanced sharding mode: The total shard count is now available from shardingNum in JobContext.

June 23, 2021

N/A

1.2.7

New feature

Added a toggle to disable the failover feature.

April 28, 2021

N/A

Fixed issue

  • Fixed a socket leak caused by failed heartbeat probes.

  • Fixed an issue where the MapReduce master worker triggered unnecessary failovers when handling a large number of subtasks.

N/A

1.2.5.2

New feature

Second-delay jobs now support millisecond-level intervals.

April 8, 2021

N/A

Optimization

  • Optimized the MapReduce model: the root task now runs on the master worker, simplifying troubleshooting.

  • Removed the hard dependency on Log4j 2. You can now exclude the Log4j and Log4j 2 dependencies when using Logback.

N/A

1.2.4.3

New feature

  • Added progress reporting for broadcast jobs during execution.

  • Added a toggle to disable heartbeat logging.

January 21, 2021

N/A

Fixed issue

  • Adjusted the heartbeat interval to 10 seconds.

  • Fixed a critical issue that caused broadcast jobs to hang.

N/A

2020

Version

Type

Description

Release date

Related documentation

1.2.3.1

Optimization

Optimized the agent to prevent scheduling failures due to persistent connection issues under high load.

December 16, 2020

None

1.2.2.2

New feature

  • You can collect the actual CPU usage from within a container. This requires additional configuration. For example, for a starter: spring.schedulerx2.enableCgroupMetrics=true,spring.schedulerx2.cgroupPathPrefix=/sys/fs/cgroup/cpu/ (The cgroupPathPrefix parameter is optional. If the "/sys/fs/cgroup/cpu/" path exists in the container, you do not need to configure this parameter. Otherwise, change the value to the actual cgroup path).

  • Tags are supported. You can add custom tags when an agent starts. For example, with a starter: spring.schedulerx2.labels=xxx. In task management, you can specify machines for your tasks, such as running them on instances with a specific tag. This is useful for scenarios such as canary releases and cell-based management.

December 10, 2020

None

Optimization

  • Isolated the agent's heartbeat and Akka core threads. This prevents high business load from affecting heartbeat probes.

  • Removed h2 from shade to prevent potential MySQL driver loading failures.

None

1.2.1.2

New feature

  • Introduced a shared ContainerPool. All jobs on an agent can now share a single thread pool, which significantly improves agent performance and stability when scheduling a large number of concurrent jobs.

  • Shaded the Scala library to resolve potential dependency conflicts.

  • Now supports AppKey authentication in the public cloud.

  • Enhanced the MapReduce model. You can now configure whether the Reduce method runs only after all tasks succeed.

  • The SchedulerX agent supports using -Dschedulerx.appKey to set the appKey.

October 20, 2020

None

Optimization

Optimized the agent's Netty thread pool.

None

Fixed issue

  • Fixed an issue where broadcast jobs could get stuck.

  • Fixed an issue where the AccessKey ID or AccessKey Secret of Simple Log Service (SLS) could be leaked.

None

1.2.0.2

New feature

  • Now supports over 100,000 jobs per application in the public cloud.

  • Added a logging switch for the agent, which is enabled by default.

  • You can now set the job status when creating a job with the OpenAPI.

  • Removed the diamond-client, logger.API, and Log4j dependencies.

August 19, 2020

None

Fixed issue

  • Fixed an issue where the agent would disconnect from the server during network outage drills.

  • Fixed an issue where applications in Enterprise Distributed Application Service (EDAS) could not read the AccessKey Secret.

None

1.1.4.RELEASE

New feature

  • Now supports self-managed namespaces.

  • Now supports initializing multiple SchedulerxWorker instances.

  • Enhanced the MapReduce model:

  • The Reduce method can be executed even if some tasks fail.

  • You can use JobContext.getTaskStatuses to determine the status of each Task. In the Map<Long, TaskStatus> structure, the key is the TaskId and the value is the status of the Task.

May 15, 2020

None

Fixed issue

  • ProcessResult will cause a null pointer if result is null.

  • A hang in thread-dispatcher-delivery causes tasks to become stuck.

None

1.1.2.RELEASE

New feature

shade protobuf and netty from AccessKey IDka, resolving over 90% of JAR package conflicts.

February 10, 2020

None

Optimization

Limited AppKeys to a single group.

None

2019

Version

Type

Description

Release date

Related documentation

1.1.0

New Feature

  • Added support for a multi-language sharding model, similar to elastic-job. For more information, see SchedulerX 2.0 supports a multi-language sharding model.

  • The OpenAPI for creating groups can now return an AppKey.

  • You can now rerun job instances that are in a successful state. In a workflow, rerunning a job instance also reruns its downstream jobs.

December 17, 2019

N/A

Improvement

  • Optimized server-side performance by changing communication with the client from synchronous to asynchronous and optimizing the default Akka dispatcher configuration.

  • Increased heartbeat performance by 3x when using SchedulerX agent v1.1.0.

  • Redesigned the Job Management page in the console to display more information.

N/A

Bug Fix

  • Fixed an issue where global tasks might not take effect in the distributed pull model.

  • Fixed an issue where the SchedulerX agent could still fail to start in an isolated cell environment if no domain was configured.

N/A

1.0.9

New Feature

  • Added the BlockAppStart setting, which specifies whether to block application startup if SchedulerX fails to start. The default value is true.

  • Added an API operation to query the status of a workflow. The request object is GetWorkflowInstanceRequest.

  • Added the jobName field to JobContext. Users can now retrieve the job name at runtime.

November 28, 2019

N/A

Bug Fix

  • Fixed an issue where Hessian deserialization returned 0 for BigDecimal.

  • Fixed an error that occurred during Hessian deserialization of LocalDateTime.

  • Fixed an issue where pinned jobs dispatched tasks to unspecified machines if the job exceeded a certain runtime.

  • The client call to springContext.getBean throws an AnnotationConfigApplicationContext has not been refreshed yet exception.

  • Fixed an issue where an invalid job implementation class configuration could stop the Spring Boot ServletWebServer, causing the web service to shut down while the business process continued to run.

  • Fixed an issue where a job would get stuck if the system startup variable user.dir='/' was set.

  • The client throws an AnnotationConfigApplicationContext has been closed already exception when calling springContext.getBean.

  • Fixed a rare issue where the SchedulerX agent generated duplicate worker IDs, causing jobs to be triggered on machines outside the intended application.

  • Spring applications cannot customize the class loader.

  • Fixed an issue where the counter for broadcast execution jobs displayed an incorrect value for second-delay jobs.

  • Fixed an issue where jobContext.getScheduleTime was not updated in each cycle for a second-delay job.

N/A

1.0.8

New Feature

  • Important: Refactored the JobProcessor.postProcess interface to return a ProcessResult value. You must update your code if you use the postProcess interface.

  • Enhanced broadcast execution. BroadcastJobProcessor now supports preProcess and postProcess. The preProcess method runs once before the process method is executed on all machines, and the postProcess method runs once after the process method completes on all machines.

  • You can use JobContext.getTaskAttempt to retrieve the retry count of the current subtask.

  • The SchedulerX agent now supports custom listening ports via methods such as SchedulerxWorker.setPort.

  • Java jobs can now implement JobProcessor and are no longer required to extend JavaProcessor.

August 6, 2019

N/A

Bug Fix

  • Fixed a bug where the subtasks of TaskId=1 did not support automatic retry.

  • Fixed an issue where the failure cause was not displayed when the root task of a distributed job failed.

  • Fixed an issue that prevented retrying tasks from the task list of a parallel computing job.

N/A

1.0.6-compatible

Improvement

Released a version compatible with the schedulerx1.0(DTS) interface. This version only supports a dependency on the schedulerx-worker package, not on both schedulerx-client and schedulerx-worker. All Data Transmission Service (DTS) jobs must be migrated to SchedulerX 2.0.

July 2, 2019

N/A

1.0.6

New Feature

  • Shaded several packages, including aliyun-log, commons-validator, gson, fastjson, guava, commons-collections.

  • If you return ProcessResult(false, errorMsg), the errorMsg is also displayed in the frontend log.

Improvement

  • Improved the performance of at-least-once-delivery.

  • Optimized message delivery in high-load scenarios to prevent repeated messages from causing second-delay jobs to get stuck or interrupting application threads.

July 2, 2019

Note

For this release, the version number displayed in the console is 1.0.4, which differs from the Maven version number.

Bug Fix

  • Fixed an issue where broadcast execution jobs would get stuck.

  • Fixed an issue where second-delay jobs would get stuck.

  • at-least-once-delivery may cause a subtask to be retried infinitely.

  • Fixed an issue where the SchedulerX agent would fail to start if logcollector failed to initialize.

  • Fixed an issue that prevented rescheduling a workflow after its job instances were cleared from the database.

  • Fixed an issue that prevented terminating Spring-based applications with the kill command.

1.0.3

New Feature

  • In the MapReduce model, the Reduce method can now process the results of all tasks.

  • The distributed model now supports a pull model. This model addresses single-machine performance bottlenecks and supports dynamic scaling for pulling tasks.

  • The pull model now supports a global task concurrency limit for throttling.

  • Added the wfInstanceId field to JobContext.

  • The SchedulerX agent now throws an exception and blocks JVM startup if the agent fails to start. This helps identify issues earlier.

  • The SchedulerX agent now prints the versions and paths of Maven-dependent JARs at startup to help troubleshoot package conflicts.

  • Added a queue dimension to the task details view in the distributed model. You can now view the queue of cached tasks on each machine.

June 6, 2019

N/A

Bug Fix

  • Fixed an issue where incorrectly quarantined workers could not recover automatically without a SchedulerX agent restart.

  • Fixed an issue where the task details view in the distributed model did not accurately display the number of running tasks on each machine.

  • Fixed an issue where the server did not clean up resources on slave nodes when the master node failed, causing memory leaks.

N/A

1.0.0

New Feature

  • Supports crontab and fixed_rate expressions for periodic scheduling.

  • Added support for workflow scheduling for job orchestration.

  • Supports the second_delay expression for second-level scheduling.

  • Added support for Java, Shell, Python, and Go job types.

  • Added support for standalone execution, broadcast execution, parallel computing, memory grid, and grid computing.

  • Added support for Map and MapReduce distributed programming models.

  • Added support for automatic retries on failure at both the job instance and task levels. This feature is disabled by default.

  • Added support for data time and backfill.

April 30, 2019

N/A