All Products
Search
Document Center

Microservices Engine:Java SDK

Last Updated:Mar 23, 2026

These release notes detail new features, optimizations, and bug fixes for the SchedulerX SDK for Java.

2026

Version

Type

Description

Release date

References

1.13.5

New Feature

second_delay tasks now support graceful shutdown.

Script tasks now support upstream and downstream data transfer in workflows.

March 20, 2026

N/A

1.13.4

Enhancement

CPU collection for Kubernetes applications now supports cgroup v2.

February 13, 2026

N/A

1.13.3

Enhancement

Enhanced Spring Job compatibility with Spring 7.x.

January 15, 2026

N/A

2025

Version

Type

Description

Release date

References

1.13.1

Bug Fixes

  • Fixed an issue where heartbeat registration was reported prematurely in Spring parent-child container scenarios.

  • Fixed an issue that caused Map tasks to terminate with a stop exception when upgrading from an earlier SDK version.

July 28, 2025

N/A

1.13.0

New Feature

Added support for data encryption in transit. Available for Professional Edition applications, this feature encrypts sensitive data during communication between the client and the server.

June 18, 2025

N/A

1.12.7

Improvements

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

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

May 29, 2025

N/A

Bug Fixes

  • Enabled automatic retry on subtask failure for shard 0 in broadcast jobs and sharding jobs.

  • Fixed an incorrect triggerType provided by the context in visualized MapReduce jobs during a manual rerun.

N/A

1.12.5

Improvements

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

February 08, 2025

N/A

1.12.3

New Feature

  • Added support for configuring the SDK log directory.

    • To define the root log directory, add the -Dschedulerx.log.path parameter to the startup command. Logs are stored in the final path: {schedulerx.log.path}/logs/schedulerx.

  • Added support for overwriting the default Logback configuration, allowing you to stream SDK framework logs to your own Simple Log Service (SLS) Logstore.

January 03, 2025

N/A

Improvements

  • Improved compatibility for Spring jobs to support Spring 6.x.

  • Fixed an H2 DriverClass NotFoundException caused by a missing driver class configuration for the business JDBC.

  • Fixed a concurrency issue in Map task status checks that caused task failures.

2024

Version

Change type

Description

Release date

Related documentation

1.12.2

Optimized Feature

  • Fixed security vulnerabilities in visual MapReduce jobs.

  • Fixed security vulnerabilities in some Akka APIs.

November 20, 2024

N/A

1.12.1

New Feature

  • Supports custom thread pool sizes for HTTP jobs.

  • Supports custom loggers for SchedulerX log output.

  • Introduced the @SchedulerX annotation to work with the Spring @Scheduled annotation for managing Spring scheduled tasks.

October 12, 2024

N/A

Optimized Feature

  • Removed the fastjson package to resolve a security vulnerability.

N/A

1.11.5

Optimized Feature

  • Optimized Simple Log Service (SLS) logging.

  • Fixed an issue where configuration loading errors in multiple Application Groups interfered with heartbeat reporting.

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

June 17, 2024

N/A

1.11.4

New Feature

JobContext now supports retrieving workflow IDs.

March 20, 2024

JobContext parameters

Optimized Feature

  • Reduced the SDK size by removing unused dependencies.

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

N/A

1.11.1

New Feature

Supports retrieving task parameters from environment variables.

February 20, 2024

N/A

New Feature

Supports isolation by application.

N/A

Fixed Issue

  • Patched a security vulnerability in Netty.

  • Patched a security vulnerability in Logback.

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

N/A

1.10.14

New Feature

Enabled applications to wait for running tasks to finish before shutdown, ensuring a graceful shutdown without service interruptions during deployments and restarts.

January 02, 2024

Perform a graceful shutdown for a task scheduling application

New Feature

Supports configuring the distribution rate of subtasks.

N/A

New Feature

Supports configuring user and password.

  • 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

Optimized Feature

Supports isolation by Application Group.

N/A

Optimized Feature

Supports distribution sorted by worker IP address.

N/A

Optimized Feature

  • Supports earlier versions of Spring 4.

  • Scheduled methods for Spring tasks now support any return value.

Spring tasks

Optimized Feature

  • Prevents duplicate heartbeat threads from being created when the Spring container is re-initialized.

  • Enabled automatic restart for Akka Actors that terminate unexpectedly.

N/A

Fixed Issue

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

  • Fixed an issue introduced in version 1.10.x where Map jobs would hang during execution.

  • Fixed an issue where a task instance for a Broadcast Job would not terminate if the preProcess method threw an exception.

  • Fixed an issue where orphaned threads from abnormally terminated task instances caused false timeout alarms.

  • Fixed an issue in shared thread pool mode where task status could be lost, causing tasks to hang shortly after application startup.

  • Fixed a configuration loading exception that occurred when multiple Application Groups or appKeys contained special characters.

  • Fixed an issue that prevented the use of professional edition features for visual MapReduce jobs.

N/A

2023

Version

Type

Description

Release date

References

1.9.6

New feature

Adds support for Standard Templates and Custom Templates.

  • Standard Templates: You can now modify the Image and Image Pull Policy.

  • Custom Templates: Now supports Kubernetes-native content. This requires schedulerx2-plugin-kubernetes Version 1.0.5 or later.

July 4, 2023

N/A

New feature

Map Jobs can now be dispatched from a random starting position. To enable this feature, set spring.schedulerx2.mapMasterDispatchRandom=true. Defaults to false.

N/A

New feature

Shell Jobs now support built-in system parameters.

  • schedule.timestamp: The scheduled execution time.

  • data.timestamp: The data timestamp for the scheduled execution.

N/A

1.8.13

New feature

Enhanced the Job execution thread model.

  • The default model is now the Unshared 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: Sets the global size of the Shared Thread Pool. Default: 64.

    • spring.schedulerx2.sharePoolQueueSize=20480: Sets the queue size for the Shared Thread Pool. Default: Integer.MAX_VALUE.

September 8, 2023

N/A

New feature

Adds the following parameters for Broadcast Jobs:

  • spring.schedulerx2.broadcastMasterExecEnable=false: Determines whether the Master Node participates in executing a Broadcast Job. Default: true.

  • spring.schedulerx2.broadcastDispatchRetryTimes=5: Sets the number of dispatch retry attempts for a Broadcast Job.

N/A

Enhancement

Optimized the performance of Map Jobs during large-scale application deployments and scale-in operations.

N/A

Enhancement

Optimized the timing of heartbeat reporting on application startup to prevent long Job processing times due to slow business container startup.

N/A

Bug fix

  • Fixed an issue where Jobs were rejected after running for an extended period in Shared Thread Pool mode.

  • Fixed an issue where Null Pointer exceptions occasionally occurred in logs during Job status reporting.

  • Fixed an issue in versions later than 1.7.x where the number of threads for Broadcast Jobs would continuously increase.

  • 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 merged responses for second-level Jobs were lost.

  • Fixed an issue where Diamond environment address reading failed.

  • Fixed an issue where heartbeat timeouts were excessively long when connecting to a Public Cloud.

  • Fixed log4j log format alerts.

  • Fixed an issue where Standalone Jobs could hang under abnormal dispatch conditions.

  • Fixed an incompatibility in the new version with the ClassName:BeanId configuration mode.

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

N/A

2022

Version

Change type

Description

Release date

Related documentation

1.7.10

New feature

  • Added support for native Spring scheduled tasks.

  • Added support for Tracing Analysis integration.

August 30, 2022

Enhancement

Improved the responsiveness of Agent shutdowns.

N/A

Bug fix

  • Fixed a memory overflow in high-frequency Jobs caused by excessive log output to Simple Log Service (SLS).

  • Fixed delays caused by a high volume of concurrent second-level Jobs.

N/A

1.6.1

Bug fix

Fixed high CPU usage in second-level broadcast detection threads.

August 3, 2022

N/A

1.6.0

New feature

Added support for scheduling K8s Jobs.

June 24, 2022

N/A

Enhancement

  • Enabled compatibility for Processor handler classes with Spring AOP proxies.

  • Improved the clarity of intermittent ERROR logs from the available worker monitor.

  • Enabled log collection for second_delay Jobs.

N/A

1.5.1.1

New feature

You can now dynamically enable or disable the log service.

April 19, 2022

N/A

Bug fix

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

  • Fixed a potential JobSyncService bean initialization error in versions 1.5.0.x.

1.5.0.2

New feature

Added support for declarative Job definitions in Spring Boot. You can now declare components such as namespaces, Applications, Jobs, and alerts in a configuration file. This editable, file-based declaration enables one-click Application startup in any environment.

April 1, 2022

Spring Cloud Alibaba scheduled tasks

Enhanced Visualized MapReduce jobs (formerly known as parallel computing). You can now view lists of sub-jobs, access their logs, and rerun them individually. You can now assign custom tags to sub-jobs and search for them by tag.

Enterprise distributed batch processing

1.4.2

New feature

Introduced a new log service for Distributed Task Scheduling (SchedulerX 2.0). You can now view business logs for every Job execution in the console. This feature requires no code changes; simply add a configuration for Log4j or Logback.

March 7, 2022

Integrate log service

You can now view the runtime stack of a Job directly in the console to diagnose stuck Jobs. To use this feature, you must upgrade the Agent to version 1.4.0 or later.

N/A

Enabled integration with executors developed for ElasticJob.

1.3.4

New feature

  • Added support for DataWorks jobs.

  • Added the schedulerx2-plugin-xxljob plugin for compatibility with XXL-JOB APIs.

January 6, 2022

DataWorks jobs

2021

Version

Type

Description

Release date

References

1.3.2

Improvement

Upgraded the default log4j2 dependency to version 2.15.0.

December 15, 2021

N/A

1.3.0.3

New feature

Enhanced second-level standalone jobs to be dispatched and executed across different Workers. For Spring Boot applications, enable this feature by setting the configuration parameter spring.schedulerx2.enableSecondDelayStandaloneDispatch=true. The default value is false.

November 26, 2021

N/A

Improvement

Improved Agent shutdown response time.

N/A

Fixed issue

  • Fixed an issue where an Agent connected to multiple Application Groups reported heartbeats to only one scheduling service.

  • Fixed an issue where second-level jobs occasionally encountered thread Interrupt Signals and Null Pointer Exceptions.

  • Fixed a compatibility issue where integrating the SchedulerX Agent with Spring Cloud caused jobs to hang or time out.

  • Fixed an issue where Broadcast Jobs were interrupted during parallel execution.

  • Fixed an issue where the Worker list was not periodically refreshed during the execution of second-level jobs.

  • Fixed an issue where the Scan thread did not terminate after a stop command was issued for a second-level Broadcast Job.

  • Fixed an issue where second-level Broadcast Jobs occasionally became stuck when a large number of Workers were deployed in batches.

N/A

1.2.9.1

Fixed issue

Fixed an issue where jobs could hang or time out when integrating a Worker with Spring Cloud.

August 30, 2021

N/A

1.2.9

New feature

Enhanced second-level standalone jobs to be dispatched and executed across different Workers. For Spring Boot applications, enable this feature by setting the configuration parameter spring.schedulerx2.enableSecondDelayStandaloneDispatch=true. The default value is false.

August 27, 2021

N/A

Fixed issue

Fixed issues where Broadcast Jobs were interrupted during parallel execution and the Worker list failed to update.

N/A

1.2.8.3

Fixed issue

Fixed an issue where the Scan thread did not terminate after a stop command was issued for a second-level Broadcast Job.

August 13, 2021

N/A

1.2.8.2

Fixed issue

Fixed an issue where second-level Broadcast Jobs occasionally became stuck when a large number of Workers were deployed in batches.

August 06, 2021

N/A

1.2.8

New feature

  • Enhanced Broadcast Jobs. The postProcess method can now retrieve the execution status of all Workers via JobContext.getTaskStatuses() and execution results via JobContext.getTaskResults().

  • Introduced a broadcast Sharding Model. For Broadcast Jobs, you can now obtain the shardingNum and shardingId from the JobContext to perform data processing based on the Worker's shard index.

  • Enhanced the Sharding Model. The total number of shards is now available in the JobContext through the shardingNum parameter.

June 23, 2021

N/A

1.2.7

New feature

Added a switch to disable the Failover feature.

April 28, 2021

N/A

Fixed issue

  • Fixed an issue where heartbeat probe failures could cause socket leaks.

  • Fixed an issue where the MapTask Master Worker triggered frequent unnecessary Failovers when managing a large number of Tasks.

N/A

1.2.5.2

New feature

Added support for millisecond-level intervals for second-level jobs.

April 08, 2021

N/A

Improvement

  • Optimized the MapReduce Model to pin the root Task execution to the Master Worker, which simplifies troubleshooting.

  • Removed the hard dependency on log4j2. If you use logback, you can now 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

Fixed issue

  • Adjusted the heartbeat interval to 10 seconds.

  • Fixed a critical issue where Broadcast Jobs could become stuck.

N/A

2020

Version

Change type

Description

Release date

Related documentation

1.2.3.1

Enhancement

Optimized persistent connections to prevent scheduling interruptions during high Client load.

December 16, 2020

None

1.2.2.2

New Feature

  • Added support for collecting actual container CPU usage. To enable this feature, set spring.schedulerx2.enableCgroupMetrics=true using the starter. The spring.schedulerx2.cgroupPathPrefix=/sys/fs/cgroup/cpu/ parameter is optional. You do not need to configure it if the /sys/fs/cgroup/cpu/ path exists in your container. Otherwise, set it to the actual cgroup path.

  • Added support for Tags. You can now assign custom Tags when a Client starts. For example, using the starter, set spring.schedulerx2.labels=xxx. In the Task Management module, you can assign a Task to run on an Instance with a specific Tag. This feature supports use cases such as Canary Releases and Cell-based Architectures.

December 10, 2020

None

Enhancement

  • Isolated the Client Heartbeat thread from Akka core threads. This ensures that high business workloads do not interfere with Heartbeat checks.

  • Removed the H2 database from the shaded package to resolve potential loading failures with the MySQL driver.

None

1.2.1.2

New Feature

  • Added support for a shared ContainerPool. All Tasks on a Client can now share a single Thread Pool, which significantly improves Client performance and stability when scheduling many concurrent Tasks.

  • Shaded the Scala dependency to resolve potential library conflicts.

  • Added support for AppKey Authentication in the Public Cloud.

  • Enhanced the MapReduce Model. You can now configure the Reduce method to run only after all sub-Tasks have completed successfully.

  • Clients can now set appKey with -Dschedulerx.appKey.

October 20, 2020

None

Enhancement

Optimized the Client's Netty Thread Pool.

None

Bug Fix

  • Fixed an issue where a Broadcast Job could become stuck.

  • Fixed an issue that could expose the AccessKey ID or AccessKey Secret when using the Log Service (SLS) feature.

None

1.2.0.2

New Feature

  • Added support for over 100,000 Tasks per application. This feature is available only in the Public Cloud.

  • Added a toggle for Client-side logging, enabled by default.

  • When creating a Task through the OpenAPI, you can now set its initial Status.

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

August 19, 2020

None

Bug Fix

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

  • Fixed an issue that prevented EDAS applications from reading the AccessKey Secret.

None

1.1.4.RELEASE

New Feature

  • Added support for custom namespaces.

  • Added support for initializing multiple SchedulerxWorker instances.

  • Enhanced the MapReduce Model:

  • The Reduce method can now be configured to run even if sub-Tasks fail.

  • You can now check the Status of each Task with JobContext.getTaskStatuses. This method returns a Map<Long, TaskStatus> where the key is the TaskId and the value is the Status.

May 15, 2020

None

Bug Fix

  • Fixed a Null Pointer exception that occurred when the result in ProcessResult was empty.

  • Fixed an issue where a hang in thread-dispatcher-delivery could cause Tasks to become stuck.

None

1.1.2.RELEASE

New Feature

Shaded protobuf and netty from Akka to resolve over 90% of common JAR package conflicts during integration.

February 10, 2020

None

Enhancement

AppKeys can now be used in multiple groups.

None

2019

Version

Change type

Description

Release date

Related documentation

1.1.0

Feature

  • Added a multi-language sharding model, similar to elastic-job: Multi-language sharding model in SchedulerX 2.0.

  • The OpenAPI for creating groups now returns an AppKey.

  • Successful job instances can now be rerun. For a workflow, rerunning a job instance also reruns all its downstream jobs.

December 17, 2019

None

Enhancement

  • Enhanced server performance by switching client communication from synchronous to asynchronous and optimizing the default Akka dispatcher configuration.

  • Improved heartbeat performance by 3x when using client version 1.1.0.

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

None

Fixed

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

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

None

1.0.9

Feature

  • Added the BlockAppStart configuration. This setting determines whether a SchedulerX startup failure blocks the application from starting. The default value is true.

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

  • Added the jobName field to JobContext. You can now retrieve the job name during runtime.

November 28, 2019

None

Fixed

  • Fixed an issue where BigDecimal values were deserialized as 0 by Hessian.

  • Fixed a Hessian deserialization error for LocalDateTime objects.

  • Fixed an issue with the designated worker feature where subtasks were dispatched to non-designated workers if a job ran for an extended period.

  • Fixed an issue where springContext.getBean on the client threw an AnnotationConfigApplicationContext has not been refreshed yet exception.

  • Fixed an issue where an incorrect job implementation class configuration would cause the ServletWebServer in Spring Boot to stop while the application continued to run.

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

  • Fixed an issue where springContext.getBean on the client threw an AnnotationConfigApplicationContext has been closed already exception.

  • Fixed a rare issue where the client could generate duplicate workerId values, causing jobs to be triggered on incorrect application workers.

  • Fixed an issue that prevented the use of a custom class loader in Spring applications.

  • Corrected the counter display for second-level broadcast jobs.

  • Fixed an issue where jobContext.getScheduleTime was not updated in each cycle for second-level jobs.

None

1.0.8

Feature

  • Important: Refactored the JobProcessor.postProcess API to return a ProcessResult value. If you use the postProcess API, you must update your code.

  • Enhanced broadcast execution. The BroadcastJobProcessor now supports preProcess and postProcess. The preProcess method runs once before the process method is executed on any worker, and the postProcess method runs once after the process method has completed on all workers.

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

  • The client now supports custom listening ports. For example, you can use SchedulerxWorker.setPort.

  • Java jobs can now implement JobProcessor directly without extending JavaProcessor.

August 6, 2019

None

Fixed

  • Fixed a bug where automatic retries were not supported for the subtask with TaskId=1.

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

  • Fixed an issue where subtasks of a parallel computing job could not be retried from the Task List.

None

1.0.6-compatible

Enhancement

This is a compatibility version for the SchedulerX 1.0 (Data Transmission Service (DTS)) API. You cannot depend on both the schedulerx-client and schedulerx-worker packages simultaneously. You must depend only on the schedulerx-worker package, which requires migrating all DTS jobs to SchedulerX 2.0.

July 2, 2019

None

1.0.6

Feature

  • Added shading for several packages, including aliyun-log, commons-validator, gson, fastjson, guava, and commons-collections.

  • The errorMsg is now visible in the console logs when a job returns ProcessResult(false, errorMsg).

Enhancement

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

  • Resolved an issue where repeated message sending under high load could cause second-level jobs to hang or application threads to be interrupted.

July 2, 2019

Note

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

Fixed

  • Fixed an issue where broadcast jobs would hang.

  • Fixed an issue where second-level jobs would hang.

  • Fixed an issue where at-least-once-delivery could cause a subtask to enter an infinite retry loop.

  • Fixed an issue where an initialization failure in logcollector would throw an exception and cause the startup to fail.

  • Fixed an issue where cleaning up workflow job instances from the database prevented the workflow from resuming its schedule.

  • Fixed an issue where jobs started with Spring could not be killed.

1.0.3

Feature

  • The MapReduce model can now return the results of all subtasks to the Reduce phase for processing.

  • Added support for a distributed pull model. This model addresses single-worker performance bottlenecks and supports dynamic scaling to pull subtasks.

  • The pull model now supports throttling for global subtasks by controlling concurrency.

  • Added wfInstanceId to JobContext.

  • The client now throws an exception and blocks JVM startup on failure, enabling early problem detection.

  • The client now prints the version and path of Maven dependency JARs at startup to help diagnose package conflicts.

  • Added a Queue dimension to the subtask details for the distributed model to view the cached subtask queue on each worker.

June 6, 2019

None

Fixed

  • Fixed an issue where a worker could be incorrectly quarantined due to high server load. The worker can now recover automatically without restarting the client.

  • Corrected the displayed count of running subtasks for each worker in the subtask details for the distributed model.

  • Fixed a potential memory leak where resources on slave nodes were not cleaned up if the master node fails.

None

1.0.0

Feature

  • Supports periodic scheduling by using crontab and fixed_rate expressions.

  • Supports workflow scheduling for process orchestration.

  • Supports second-level scheduling by using the second_delay expression.

  • Supports Java, Shell, Python, and Go job types.

  • Supports multiple execution modes: standalone execution, broadcast execution, parallel computing, Memory Grid, and Grid Computing.

  • Supports the Map and MapReduce distributed programming models.

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

  • Supports data time and data backfilling.

April 30, 2019

None