Java SDK

更新时间:
复制 MD 格式

These release notes detail the new features, enhancements, and fixed issues for each version of the SchedulerX SDK for Java.

2026

Version

Change type

Description

Release date

Related documents

1.13.5

new feature

second_delay tasks now support graceful shutdown.

March 20, 2026

None

new feature

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

1.13.4

optimization

CPU collection in K8s application mode now supports cgroup v2.

February 13, 2026

None

1.13.3

optimization

Spring tasks are now compatible with Spring 7.x.

January 15, 2026

None

2025

Version

Change type

Description

Release date

Related documents

1.13.1

bug fixes

  • Fixed premature reporting of heartbeat registration in Spring parent-child container scenarios.

  • Fixed map tasks that stopped unexpectedly when upgrading the SDK.

July 28, 2025

None

1.13.0

new feature

Added link encryption. For Professional Edition applications, this encrypts sensitive data during communication between the server and client.

June 18, 2025

None

1.12.7

improvement

  • Refactored the placeholder logic for script tasks to resolve replacement failures caused by Spring conflicts.

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

May 29, 2025

None

bug fixes

  • Enabled automatic retries for failed subtasks on shard 0 in broadcast and sharded tasks.

  • Corrected the triggerType value obtained from the context during a manual rerun of visual MapReduce tasks.

None

1.12.5

improvement

Improved Spring task compatibility in scenarios where other components also implement TaskScheduler.

February 8, 2025

None

1.12.3

new feature

  • Enabled configuration of the SDK log directory.

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

  • Enabled overriding default logback configurations and exporting SDK logs to your Log Service (SLS) Logstore.

January 3, 2025

None

improvement

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

  • Prevented an H2 DriverClass NotFound exception for applications with no configured JDBC driver class.

  • Fixed a concurrency issue in the map task status check that caused task failures.

2024

Version

Change type

Description

Release date

Related documentation

1.12.2

Improvement

  • Fixed a security vulnerability in visual MapReduce tasks.

  • Fixed security vulnerabilities in some Akka interfaces.

November 20, 2024

None

1.12.1

New Feature

  • Added support for customizing the thread pool size for HTTP agent tasks.

  • Added support for custom loggers for SchedulerX log output.

  • Added the @SchedulerX annotation, which works with the Spring @Scheduled annotation to take over some Spring scheduled tasks.

October 12, 2024

None

Improvement

  • Removed the fastjson package to address a security vulnerability.

None

1.11.5

Improvement

  • Improved SLS log output.

  • Fixed an issue where configuration reading errors in multiple application groups affected heartbeat reporting.

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

June 17, 2024

None

1.11.4

New Feature

JobContext now provides the workflow ID.

March 20, 2024

JobContext parameter description

Improvement

  • Slimmed down the SDK 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 obtaining task parameters from environment variables.

February 20, 2024

None

New Feature

Added support for application isolation.

None

Bug Fix

  • Fixed a security vulnerability in Netty.

  • Fixed a security vulnerability in Logback.

  • Fixed an issue where log conflicts prevented SchedulerX framework logs from being displayed.

None

1.10.14

New Feature

Added support for graceful shutdown. The application now waits for running tasks to complete before shutting down, ensuring zero business impact during releases and restarts.

January 2, 2024

How to gracefully shut down a task scheduling application

New Feature

Added support for configuring the subtask dispatch rate.

None

New Feature

Added support for configuring a username and password for the embedded H2 database.

  • spring.schedulerx2.h2DatabaseUser: Sets the user for the H2 embedded database.

  • spring.schedulerx2.h2DatabasePassword: Sets the password for the H2 embedded database.

Integrate SchedulerX with Spring Boot applications

Improvement

Added support for isolation by application group.

None

Improvement

Added support for distributing tasks to workers sorted by IP address.

None

Improvement

  • Added support for earlier versions of Spring 4.

  • Spring task scheduling methods now support any return value type.

Spring tasks

Improvement

  • Prevented the creation of duplicate heartbeat threads when the Spring container is re-initialized.

  • Added support for automatically restarting Akka Actors if they terminate unexpectedly.

None

Bug Fix

  • Fixed an issue where an exception was returned immediately if Spring could not read a Processor Bean.

  • Fixed an issue introduced in version 1.10.x where Map tasks would get stuck during execution.

  • Fixed an issue that prevented a task instance from being terminated after an exception occurred during the preProcess execution of a broadcast task.

  • Fixed an issue where residual threads caused task timeout alarms when a task instance terminated unexpectedly.

  • Fixed an issue in shared thread pool mode where task status was sometimes lost, causing tasks to get stuck shortly after application startup.

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

  • Fixed an issue that made Professional Edition features for the visual MapReduce task unavailable.

None

2023

Version

Change type

Description

Release date

Related documentation

1.9.6

New feature

Added support for standard and custom templates.

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

  • Custom template: Compatible with native Kubernetes content (requires schedulerx2-plugin-kubernetes 1.0.5 or later).

July 4, 2023

None

New feature

Added support for dispatching map tasks from a random starting position. Enable this feature with the setting spring.schedulerx2.mapMasterDispatchRandom=true (default: false).

None

New feature

Shell tasks now support common built-in system parameters.

  • schedule.timestamp (scheduled execution time)

  • data.timestamp (scheduled data time)

None

1.8.13

New feature

Adjusted the execution thread model.

  • Switched to a non-shared thread pool model.

  • Added parameters for the shared thread pool model.

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

    • spring.schedulerx2.sharePoolSize: Sets the size of the shared thread pool. Default: 64.

    • spring.schedulerx2.sharePoolQueueSize: Sets the queue size for the shared thread pool. Default: Integer.MAX_VALUE.

September 8, 2023

None

New feature

Added the following parameters.

  • spring.schedulerx2.broadcastMasterExecEnable: Disables broadcast task execution on the master node when set to false. Default: true.

  • spring.schedulerx2.broadcastDispatchRetryTimes: Sets the number of retry attempts for broadcast dispatch.

None

Improvement

Improved the performance of map tasks during large-scale application deployments and scale-in operations.

None

Improvement

Optimized heartbeat reporting during application startup to prevent slow container startups from delaying task processing.

None

Bug fixes

  • Fixed an issue in shared thread pool mode that caused tasks to be rejected after a long runtime.

  • Fixed an intermittent NullPointerException in task status reporting logs.

  • Fixed a bug introduced after version 1.7.x that caused the thread count for broadcast tasks to grow indefinitely.

  • Fixed a memory leak in shared thread pool mode.

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

  • Fixed an issue where merged responses could be lost for second-level tasks.

  • Fixed an issue where Diamond failed to read environment addresses correctly.

  • Fixed an issue where heartbeat timeouts were too long on the public cloud.

  • Fixed log format warnings for log4j.

  • Fixed an issue where a standalone task could hang when task dispatching failed.

  • Fixed a compatibility issue with the ClassName:BeanId configuration mode.

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

None

2022

Version

Change type

Description

Release date

Related documentation

1.7.10

New Feature

  • Added support for native Spring scheduled jobs.

  • Added support for distributed tracing.

August 30, 2022

Improvement

Optimized the client shutdown process to improve shutdown speed.

N/A

Bug Fix

  • Fixed an out of memory issue caused by high-volume log output to SLS from high-frequency jobs.

  • Fixed a latency issue when large numbers of second-level jobs ran concurrently.

N/A

1.6.1

Bug Fix

Fixed high CPU usage in the detection thread for second-level broadcast jobs.

August 3, 2022

N/A

1.6.0

New Feature

Added support for K8s Job scheduling.

June 24, 2022

N/A

Improvement

  • Made Processor handler classes compatible with Spring AOP proxies.

  • Optimized occasional ERROR log messages from the available worker monitoring timer.

  • second_delay jobs now support log collection.

N/A

1.5.1.1

New Feature

Added the ability to enable or disable Log Service dynamically without a restart.

April 19, 2022

N/A

Bug Fix

  • Fixed an incompatibility issue in version 1.5.0.x with Spring Boot 2.0.3.

  • Fixed a potential initialization error in 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 now declare namespaces, applications, jobs, and alarms in a configuration file, simplifying job management. These declarations can be modified to launch applications in any environment with a single click.

April 1, 2022

Scheduled jobs in Spring Cloud Alibaba

Visual MapReduce jobs (formerly parallel computing) now support subtask-level lists, logs, and reruns. You can also define custom tags for subtasks and search for them by tag.

Enterprise-grade distributed batch processing solution

1.4.2

New Feature

The Log Service for SchedulerX 2.0 now allows you to view business logs for every job run (including distributed jobs) in the console. You can enable this feature by adding a Log4j or Logback configuration without changing any code.

March 7, 2022

Integrate with Log Service

You can now view the stack trace of a running job directly in the console to help troubleshoot stuck jobs. To use this feature, you must upgrade the client to version 1.4.0 or later.

N/A

Added support for ElasticJob executors.

1.3.4

New Feature

  • Added support for DataWorks jobs.

  • Added the schedulerx2-plugin-xxljob to support the Xxl-Job API.

January 6, 2022

2021

Version

Change type

Description

Release date

Related documentation

1.3.2

Optimization

Upgraded the default Log4j2 dependency to version 2.15.0.

December 15, 2021

N/A

1.3.0.3

New Feature

Second-level standalone enhancement: Second-level standalone jobs can be dispatched to different idle instances for execution. The configuration parameter for SpringBoot applications is as follows: spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (The default value is false).

November 26, 2021

N/A

Optimization

Reduced agent shutdown time.

N/A

Bug Fix

  • Fixed an issue where an agent connected to multiple application groups sent heartbeats from its running workers to only a single scheduling service.

  • Fixed an issue where second-delay jobs could cause occasional thread interruptions or null pointer exceptions.

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

  • Fixed an issue where a broadcast job could be interrupted during concurrent execution.

  • Fixed an issue where a second-delay job failed to periodically refresh its worker list during execution.

  • Fixed an issue where the scanning thread for a second-delay broadcast job did not terminate after a stop command was executed.

  • Fixed an issue where a second-delay broadcast job could hang during the batched deployment of a large number of workers.

N/A

1.2.9.1

Bug Fix

Fixed an issue where jobs would hang and time out when a worker was integrated with Spring Cloud.

August 30, 2021

N/A

1.2.9

New Feature

Second-level standalone enhancement: Allows standalone, second-level recurring jobs to be dispatched for execution across different instances. Configuration parameter: spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (Default: false).

August 27, 2021

N/A

Bug Fix

Fixed an issue where a concurrently executing broadcast job could be interrupted and its worker list failed to update.

N/A

1.2.8.3

Bug Fix

Fixed an issue where the scanning thread for a second-delay broadcast job did not terminate after a stop command was executed.

August 13, 2021

N/A

1.2.8.2

Bug Fix

Fixed an issue where a second-delay broadcast job could hang during the batched deployment of a large number of workers.

August 6, 2021

N/A

1.2.8

New Feature

  • Broadcast job enhancement: The postProcess method can retrieve the execution status of all machines, JobContext.getTaskStatuses(), and the execution results, JobContext.getTaskResults().

  • Broadcast sharding model: A broadcast task can obtain shardingNum and shardingId from the JobContext and use the index of its machine to process data in a distributed manner.

  • Sharding model enhancement: JobContext can get the total number of shards from shardingNum.

June 23, 2021

N/A

1.2.7

New Feature

Added a switch to enable or disable the failover feature.

April 28, 2021

N/A

Bug Fix

  • Fixed a potential socket leak that could occur when a heartbeat probe failed.

  • Fixed an issue where the MapTask Master could frequently trigger 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 always runs on the master node to simplify troubleshooting.

  • The SchedulerX agent no longer has a hard dependency on Log4j2. If you use Logback, you can remove the Log4j and Log4j2 dependencies.

N/A

1.2.4.3

New Feature

  • Broadcast jobs now support progress reporting during execution.

  • Added a switch to disable heartbeat logging.

January 21, 2021

N/A

Bug Fix

  • Adjusted the heartbeat interval to 10 seconds.

  • Fixed a critical issue that could cause broadcast jobs to hang.

N/A

2020

Version

Change type

Description

Release date

Related documentation

1.2.3.1

Improvement

Improves stability under high client load by preventing persistent connection failures that disrupt task scheduling.

December 16, 2020

N/A

1.2.2.2

New Feature

  • This feature supports collecting the real CPU usage of a container from within the container. You must add a configuration. For example, for a starter: spring.schedulerx2.enableCgroupMetrics=true, spring.schedulerx2.cgroupPathPrefix=/sys/fs/cgroup/cpu/ (Optional. If the container has the /sys/fs/cgroup/cpu/ path, no configuration is needed. Otherwise, change the value to the actual cgroup path).

  • Labels are supported. You can set custom labels for a client at startup. For example, with the starter: spring.schedulerx2.labels=xxx. In task management, you can assign tasks to run on instances with a specific label. This is useful for scenarios such as canary releases and cell-based architectures.

December 10, 2020

N/A

Improvement

  • Separated the client heartbeat thread from core Akka threads to ensure that high business traffic does not affect heartbeat probes.

  • Removed h2 from the shaded package. Shading h2 could cause the MySQL driver to fail to load.

N/A

1.2.1.2

New Feature

  • Adds a shared ContainerPool, allowing all client tasks to share a single thread pool. This feature significantly improves client performance and stability during high-concurrency task scheduling.

  • Shaded the Scala dependency to prevent conflicts.

  • Adds support for appKey authentication on the public cloud.

  • Enhances the MapReduce model, allowing you to configure the Reduce method to run only after all subtasks succeed.

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

October 20, 2020

N/A

Improvement

Optimized the client Netty thread pool.

N/A

Bug Fix

  • Fixed an issue where broadcast tasks could get stuck.

  • Fixed a potential leak of AccessKey ID or AccessKey Secret credentials in the Log Service (SLS) feature.

N/A

1.2.0.2

New Feature

  • Adds support for over 100,000 tasks per application on the public cloud.

  • Adds a toggle for client-side logging, which is enabled by default.

  • Allows setting the initial status of a task when you create it by using the OpenAPI.

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

August 19, 2020

N/A

Bug Fix

  • Fixed an issue where the client would lose its connection to the server during network partition drills.

  • Fixed an issue where EDAS applications could not read the AccessKey Secret.

N/A

1.1.4.RELEASE

New Feature

  • Adds support for custom namespaces.

  • Adds support for initializing multiple SchedulerxWorker instances.

  • Enhances the MapReduce model.

  • Allows the Reduce method to run even if subtasks fail.

  • The JobContext.getTaskStatuses method determines the status of each task, returning a Map<Long, TaskStatus> structure where the key is the TaskId and the value is the task status.

May 15, 2020

N/A

Bug Fix

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

  • thread-dispatcher-delivery hanging causes tasks to get stuck.

N/A

1.1.2.RELEASE

New Feature

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

February 10, 2020

N/A

Improvement

Improves support for AppKeys across multiple groups.

N/A

2019

Version

Type

Description

Release date

References

1.1.0

New feature

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

  • The OpenAPI operation for creating groups now returns an AppKey.

  • Added support for rerunning job instances that are in a successful state. For a job instance in a workflow, you can rerun the instance itself and its downstream instances.

December 17, 2019

N/A

Optimized feature

  • Improved server performance by changing server-agent communication from synchronous to asynchronous and optimizing the default Akka dispatcher configuration.

  • Tripled heartbeat performance in SchedulerX agent 1.1.0.

  • Redesigned the Task Management list in the console to display more information.

N/A

Fixed issue

  • Fixed an issue where global subtasks might not work correctly in the pull model.

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

N/A

1.0.9

New feature

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

  • Added the GetWorkflowInstanceRequest API operation to query the status of a workflow.

  • Added the jobName field to JobContext to retrieve the name of a running job.

November 28, 2019

N/A

Fixed issue

  • Fixed an issue where deserializing BigDecimal by using Hessian resulted in 0.

  • Fixed an error when deserializing LocalDateTime with Hessian.

  • Fixed an issue with the designated machine feature where subtasks were dispatched to unspecified machines after a job ran for a certain period.

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

  • Fixed an issue where an incorrect job implementation class configuration would trigger the shutdown of the Spring Boot ServletWebServer, causing the web service to stop while the business process continued to run.

  • Fixed an issue where jobs would get stuck if the system startup variable user.dir was set to /.

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

  • Fixed a rare issue where the SchedulerX agent could generate duplicate workerId values, causing tasks to be triggered on machines outside the intended application.

  • Fixed an issue that prevented using custom class loaders in Spring applications.

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

  • For second-level tasks, jobContext.getScheduleTime is not updated in each loop iteration.

N/A

1.0.8

New feature

  • Important: The JobProcessor.postProcess interface has been refactored to add a ProcessResult return value. You must modify any code that uses the postProcess interface.

  • Enhanced broadcast execution. BroadcastJobProcessor now supports preProcess and postProcess. The preProcess method runs once before all workers execute process, and postProcess runs once after all workers complete process.

  • You can now use JobContext.getTaskAttempt to retrieve the current number of retry attempts for a subtask.

  • The SchedulerX agent now supports custom listening ports, which can be set using SchedulerxWorker.setPort.

  • Java jobs can now implement JobProcessor without inheriting from JavaProcessor.

August 6, 2019

N/A

Fixed issue

  • Fixed a bug that prevented automatic retries for subtasks with TaskId=1.

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

  • Fixed an issue that prevented subtasks from being retried from the task list of a parallel computing job.

N/A

1.0.6-compatible

Optimized feature

This version is compatible with the schedulerx1.0 (DTS) interface. You cannot depend on both the schedulerx-client and schedulerx-worker packages. You can only depend on the schedulerx-worker package. This means that you must migrate all DTS tasks to SchedulerX 2.0.

July 2, 2019

N/A

1.0.6

New feature

  • Shaded the following packages: aliyun-log, commons-validator, gson, fastjson, guava, commons-collections.

  • When ProcessResult(false, errorMsg) is returned, the errorMsg is also visible in the frontend logs.

Optimized feature

  • Optimize at-least-once-delivery performance.

  • Resolved an issue in high-load scenarios where repeated message sending could cause second-delay jobs to get stuck or application threads to be interrupted.

July 2, 2019

Note

The version number displayed in the console for this release is 1.0.4, which is inconsistent with the Maven version number.

Fixed issue

  • Fixed an issue where broadcast jobs could get stuck.

  • Fixed an issue where second-delay jobs could 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 and threw an exception.

  • Fixed an issue where a workflow could not be rescheduled after its job instances were cleaned up from the database.

  • Fixed an issue where the kill command was not supported for applications started with Spring.

1.0.3

New feature

  • The MapReduce model can now return all subtask results to the Reduce method for processing.

  • The distributed model now supports a pull model. This resolves performance bottlenecks on standalone machines and enables dynamic scaling to pull subtasks.

  • The pull model supports global subtask concurrency, allowing for rate limiting.

  • Added wfInstanceId to JobContext.

  • The SchedulerX agent now throws an exception and blocks JVM startup on failure, allowing for earlier problem detection.

  • On startup, the SchedulerX agent now prints the version and path of Maven-dependent JARs to help troubleshoot conflicts.

  • Added a queue dimension to the subtask details in the distributed model, which displays the cached subtask queue on each machine.

June 6, 2019

N/A

Fixed issue

  • Workers that were mistakenly quarantined due to high server load can now recover automatically without restarting the SchedulerX agent.

  • The subtask details in the distributed model now accurately display the number of running subtasks on each machine.

  • The server now cleans up resources on slave nodes if the master node goes down, preventing memory leaks.

N/A

1.0.0

New feature

  • Added support for periodic scheduling using crontab and fixed_rate expressions.

  • Added support for workflow scheduling and orchestration.

  • Added support for second-level scheduling using second_delay expressions.

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

  • Added support for the following execution modes: standalone, broadcast, parallel computing, memory grid, and grid computing.

  • Added support for Map and MapReduce distributed programming models.

  • Added support for automatic retries of failed job instances and subtasks. This feature is disabled by default.

  • Added support for data time and data backfilling.

April 30, 2019

N/A