Tous les produits
Search
Centre de documentation

Microservices Engine:Java SDK

Dernière mise à jour :Sep 06, 2026

Cette rubrique décrit les modifications apportées à chaque version du SDK Java SchedulerX, notamment les nouvelles fonctionnalités, les optimisations et les corrections de problèmes critiques. Utilisez-la pour suivre les publications du SDK Java.

Mise à niveau des versions et notes de fin de vie

Recommandations de mise à niveau

Vous pouvez mettre à niveau le SDK Java SchedulerX directement vers la dernière version, qui est la 1.13.5. Il n'est pas nécessaire d'arrêter ou de modifier les tâches planifiées existantes avant la mise à niveau. Le SDK étant intégré à votre application métier, exécutez des tests d'intégration complets après la mise à niveau afin de détecter d'éventuels conflits de JAR.

Impact de l'obsolescence des versions

La console affiche le statut du cycle de vie de la version du client SDK sur des pages telles que Application Management et Job Management :

Statut

Description

Stable**

Version actuellement recommandée. Elle offre tous les engagements SLA et le support technique.

Expired**

La version a expiré. Les tâches planifiées existantes continuent de s'exécuter normalement, mais aucun engagement SLA ne s'applique. Mettez à niveau dès que possible.

Deprecated**

La version est obsolète. Les tâches planifiées existantes continuent de s'exécuter normalement, mais aucun engagement SLA ne s'applique. Pour bénéficier du support technique, commencez par mettre à niveau vers la dernière version. Effectuez la mise à niveau immédiatement.

Remarque

Une version dont le statut est Expired** ou Deprecated** n'interrompt pas les tâches planifiées déjà en cours d'exécution, mais elle n'offre aucune garantie SLA ni support technique. Mettez à niveau le SDK vers une version Stable** dans les meilleurs délais.

Recherche de versions compatibles

Avant de procéder à la mise à niveau, consultez les tableaux d'historique des versions plus loin dans cette rubrique. Chaque entrée décrit les fonctionnalités, les correctifs et les notes de compatibilité d'une version, ce qui vous permet de choisir une version compatible adaptée comme cible de mise à niveau.

2026

Version

Type de modification

Description

Date de publication

Références

1.13.5

Nouvelle fonctionnalité

Les tâches second_delay prennent désormais en charge l'arrêt gracieux.

Les tâches de script prennent désormais en charge le transfert de données en amont et en aval entre les nœuds de workflow.

20 mars 2026

Aucune

1.13.4

Optimisation

Optimise la collecte des métriques CPU en mode application K8s pour assurer la compatibilité avec le mode cgroup v2.

13 février 2026

Aucune

1.13.3

Optimisation

Améliore la compatibilité des tâches Spring avec Spring 7.x.

15 janvier 2026

Aucune

2025

Version

Type de modification

Description

Date de publication

Références

1.13.1

Problème corrigé

  • Correction de l'enregistrement prématuré des signaux de présence (heartbeat) dans les contextes parent-enfant Spring.

  • Correction de l'arrêt inattendu des tâches Map lors d'une mise à niveau du SDK depuis une version antérieure.

28 juillet 2025

Aucune

1.13.0

Nouvelle fonctionnalité

Ajout de la prise en charge du chiffrement des liens pour protéger les données sensibles en transit entre le client et le serveur dans les applications Professional Edition.

18 juin 2025

Aucune

1.12.7

Optimisation

  • Refonte de la logique des espaces réservés pour les tâches de script afin de corriger les échecs de remplacement dus aux conflits Spring.

  • Mise à niveau de la version Spring vers la 5.3.31 pour corriger une vulnérabilité de sécurité.

29 mai 2025

Aucune

Problème corrigé

  • Correction d'un problème empêchant la sous-tâche 0 des tâches de diffusion (broadcast) et des tâches partitionnées de prendre en charge la nouvelle tentative automatique en cas d'échec.

  • Correction d'un problème où le context fournissait un triggerType incorrect lors de la réexécution manuelle d'un job MapReduce visuel.

Aucune

1.12.5

Optimisation

Amélioration de la compatibilité des tâches Spring lorsque d'autres composants implémentent TaskScheduler.

8 février 2025

Aucune

1.12.3

Nouvelle fonctionnalité

  • Ajout de la prise en charge de la configuration du répertoire des journaux du SDK.

    • Ajoutez -Dschedulerx.log.path=<log_root_path> à la commande de démarrage. Le chemin final des journaux est {schedulerx.log.path}/logs/schedulerx.

  • Ajout de la prise en charge du remplacement de la configuration logback du SDK et de l'exportation des journaux vers vos propres Logstores.

    • La configuration Simple Log Service vous permet d'écrire les journaux dans votre propre Logstore.

      Pour Logback, consultez Logback Appender.

      Pour Log4j2, consultez Log4j Appender.

3 janvier 2025

Aucune

Optimisation

  • Amélioration de la compatibilité des tâches Spring avec Spring 6.x.

  • Correction d'une exception H2 DriverClass NotFound causée par l'absence de configuration de la classe de pilote pour une connexion JDBC métier.

  • Correction d'une condition de concurrence dans la vérification du statut des tâches Map, qui provoquait des échecs de tâche.

2024

Version

Type de modification

Description

Date de publication

Références

1.12.2

Optimisation

  • Correction d'une vulnérabilité de sécurité dans les jobs MapReduce visuels.

  • Correction de vulnérabilités de sécurité dans certaines API Akka.

20 novembre 2024

Aucune

1.12.1

Nouvelle fonctionnalité

  • Les jobs d'agent HTTP prennent désormais en charge la personnalisation de la taille du pool de threads.

  • Ajout de la prise en charge de la personnalisation du logger pour la sortie des journaux SchedulerX.

  • Introduction de l'annotation @SchedulerX, qui fonctionne avec l'annotation Spring @Scheduled, permettant à SchedulerX de gérer certaines tâches planifiées Spring.

12 octobre 2024

Aucune

Optimisation

  • Suppression du package fastjson pour résoudre une vulnérabilité de sécurité.

Aucune

1.11.5

Optimisation

  • Optimisation de la sortie des journaux SLS.

  • Correction d'un problème où la transmission des signaux de présence était affectée par des erreurs de lecture de configuration across plusieurs groupes d'applications.

  • Réduction du nombre de nouvelles tentatives tolérantes aux pannes pour les exceptions de délai d'attente des signaux de présence.

17 juin 2024

Aucune

1.11.4

Nouvelle fonctionnalité

Ajout de la prise en charge de la récupération de l'ID de workflow à partir de JobContext.

20 mars 2024

Paramètres JobContext

Optimisation

  • Réduction de la taille du SDK en supprimant les dépendances inutilisées.

  • Suppression du fichier Log4j2.xml inutilisé du SDK pour éviter les conflits de configuration des journaux.

Aucune

1.11.1

Nouvelle fonctionnalité

Ajout de la prise en charge de l'obtention des paramètres de job à partir des variables d'environnement.

20 février 2024

Aucune

Nouvelle fonctionnalité

Ajout de la prise en charge de l'isolation au niveau de l'application.

Aucune

Problème corrigé

  • Correction d'une vulnérabilité de sécurité dans Netty.

  • Correction d'une vulnérabilité de sécurité dans Logback.

  • Correction d'un problème empêchant l'affichage des journaux du framework SchedulerX en raison de conflits de journaux.

Aucune

1.10.14

Nouvelle fonctionnalité

Ajout de la prise en charge de l'arrêt gracieux. Les applications attendent que toutes les tâches en cours d'exécution soient terminées avant de s'arrêter, ce qui permet aux déploiements et aux redémarrages de se terminer sans interruption de service.

2 janvier 2024

Arrêt gracieux des tâches planifiées

Nouvelle fonctionnalité

Ajout de la prise en charge de la configuration du taux de distribution pour les sous-tâches.

Aucune

Nouvelle fonctionnalité

Ajout de la prise en charge de la configuration d'un nom d'utilisateur et d'un mot de passe.

  • spring.schedulerx2.h2DatabaseUser : définit l'utilisateur de la base de données H2 intégrée.

  • spring.schedulerx2.h2DatabasePassword : spécifie le mot de passe de la base de données H2 intégrée.

Connecter une application Spring Boot à SchedulerX

Optimisation

Ajout de la prise en charge de l'isolation par groupe d'applications.

Aucune

Optimisation

Ajout de la prise en charge de la distribution triée par adresse IP du worker.

Aucune

Optimisation

  • Ajout de la prise en charge des versions antérieures de Spring 4.

  • Les méthodes planifiées dans les jobs Spring prennent désormais en charge tout type de retour.

Jobs Spring

Optimisation

  • Empêche le conteneur Spring de créer des threads de signal de présence en double lors de la réinitialisation.

  • Ajout de la prise en charge du redémarrage automatique des acteurs Akka en cas de terminaison inattendue.

Aucune

Problème corrigé

  • Correction d'un problème où Spring renvoyait immédiatement une exception en cas d'échec de lecture d'un bean Processor.

  • Correction d'un problème introduit dans la v1.10.x qui bloquait les jobs Map.

  • Correction d'un problème empêchant la terminaison d'une instance de job après l'échec de l'exécution preProcess d'un job de diffusion.

  • Correction d'un problème où des threads résiduels déclenchaient des alertes de délai d'expiration d'exécution de job après des défaillances d'instance.

  • Correction d'un problème en mode de pool de threads partagé où un job pouvait se bloquer en raison d'une perte d'état peu après le démarrage de l'application.

  • Correction d'un problème d'échec de chargement de la configuration si plusieurs groupes d'applications ou appKey contenaient des caractères spéciaux.

  • Correction d'un problème empêchant les jobs MapReduce visuels d'utiliser les fonctionnalités Professional Edition.

Aucune

2023

Version

Type de modification

Description

Date de publication

Références

1.9.6

Nouvelle fonctionnalité

Ajout de la prise en charge des modèles standard et personnalisés.

  • Modèles standard : vous pouvez modifier l'image et la politique de tirage d'image.

  • Modèles personnalisés : compatibles avec les ressources Kubernetes natives. Pour utiliser cette fonctionnalité, mettez à niveau schedulerx2-plugin-kubernetes vers la version 1.0.5 ou ultérieure.

4 juillet 2023

Aucune

Nouvelle fonctionnalité

Vous pouvez désormais distribuer les jobs map à partir d'une position de départ aléatoire. Pour activer cette option, définissez spring.schedulerx2.mapMasterDispatchRandom=true. La valeur par défaut est false.

Aucune

Nouvelle fonctionnalité

Les jobs Shell prennent désormais en charge les paramètres système intégrés courants.

  • schedule.timestamp (l'heure planifiée pour le job)

  • data.timestamp (l'horodatage des données pour le job)

Aucune

1.8.13

Nouvelle fonctionnalité

Ajustement du modèle de thread d'exécution.

  • Basculement du modèle vers le mode de pool de threads non partagé.

  • Les paramètres suivants sont disponibles pour le mode de pool de threads partagé :

    • spring.schedulerx2.shareContainerPool=true : active le pool de threads partagé.

    • spring.schedulerx2.sharePoolSize=32 : taille globale du pool de threads partagé. Valeur par défaut : 64.

    • spring.schedulerx2.sharePoolQueueSize=20480 : taille de la file d'attente du pool de threads partagé. Valeur par défaut : Integer.MAX_VALUE.

8 septembre 2023

Aucune

Nouvelle fonctionnalité

Ajout des paramètres suivants :

  • spring.schedulerx2.broadcastMasterExecEnable=false : détermine si le nœud maître participe à l'exécution d'un job de diffusion. Valeur par défaut : true.

  • spring.schedulerx2.broadcastDispatchRetryTimes=5 : nombre de tentatives de redistribution d'un job de diffusion.

Aucune

Optimisation

Optimisation des performances des jobs map lors des déploiements d'applications à grande échelle et des réductions de capacité.

Aucune

Optimisation

Optimisation de la transmission des signaux de présence lors du démarrage de l'application pour éviter qu'un démarrage lent du conteneur n'allonge les temps de traitement des jobs.

Aucune

Problème corrigé

  • Correction d'un problème où les jobs étaient rejetés après une longue exécution en mode de pool de threads partagé.

  • Correction d'un problème provoquant occasionnellement des journaux d'erreur null pointer lors de la notification du statut des jobs.

  • Correction d'un problème dans les versions postérieures à la 1,7.x où le nombre de threads pour un job de diffusion augmentait continuellement.

  • Correction d'une fuite de ressources mémoire en mode de pool de threads partagé.

  • Correction d'un problème empêchant les objets proxy dynamiques d'exécuter l'opération Reduce.

  • Correction d'un problème où les accusés de réception des jobs de niveau seconde étaient perdus pendant le processus de fusion.

  • Correction d'un problème où Diamond ne parvenait pas à lire les endpoints de l'environnement.

  • Correction d'un problème lié à des délais d'attente de signal de présence excessivement longs lors de la connexion à un cloud public.

  • Correction d'un problème où des alertes de format de journal étaient déclenchées pour log4j.

  • Correction d'un problème où un job autonome se bloquait en cas d'exception de distribution.

  • Correction d'une incompatibilité ascendante avec le mode de configuration ClassName:BeanId.

  • Correction de la limite maximale de taille de fichier pour les journaux autonomes Logback.

Aucune

2022

Version

Type de modification

Description

Date de publication

Références

1.7.10

Nouvelle fonctionnalité

  • Ajout de la prise en charge des tâches planifiées Spring natives.

  • Ajout de la prise en charge de l'intégration avec Tracing Analysis.

30 août 2022

Optimisation

Amélioration de la réactivité des agents lors de l'arrêt.

Aucune

Correction

  • Correction d'une erreur d'épuisement de la mémoire (out-of-memory) provoquée par un volume élevé de journaux Simple Log Service générés par des tâches à haute fréquence.

  • Résolution d'un problème de latence survenant lors de l'exécution simultanée d'un grand nombre de tâches au niveau de la seconde.

Aucune

1.6.1

Correction

Correction d'une utilisation élevée du CPU causée par les threads de détection de diffusion pour les tâches au niveau de la seconde.

3 août 2022

Aucune

1.6.0

Nouvelle fonctionnalité

Ajout de la prise en charge de la planification des tâches Kubernetes.

24 juin 2022

Aucune

Optimisation

  • Rendu des classes Processor compatibles avec les configurations de proxy Spring AOP.

  • Amélioration du contenu des messages de journal ERROR apparaissant occasionnellement pour le minuteur de surveillance des workers disponibles.

  • Ajout de la prise en charge de la collecte de journaux pour les tâches second_delay.

Aucune

1.5.1.1

Nouvelle fonctionnalité

Ajout de la prise en charge de l'activation ou de la désactivation dynamique de Simple Log Service.

19 avril 2022

Aucune

Correction

  • Correction d'un problème d'incompatibilité entre la version 1.5.0.x et Spring Boot 2.0.3.

  • Correction d'une erreur d'initialisation potentielle du bean JobSyncService dans la version 1.5.0.x.

1.5.0.2

Nouvelle fonctionnalité

Ajout de la prise en charge des définitions de tâches déclaratives dans Spring Boot. Vous pouvez déclarer des namespaces, des applications, des tâches et des alertes dans les fichiers de configuration afin de simplifier la gestion des tâches. Ces fichiers peuvent être modifiés pour lancer une application dans n'importe quel environnement en un seul clic.

1er avril 2022

Tâches planifiées Spring Cloud Alibaba

Les tâches MapReduce visualisées (anciennement calcul parallèle) permettent de consulter les listes, les journaux et les réexécutions au niveau des tâches. Vous pouvez également ajouter des tags personnalisés aux tâches et effectuer des recherches par tag.

Traitement par lots distribué de niveau entreprise

1.4.2

Nouvelle fonctionnalité

SchedulerX 2.0 s'intègre à Simple Log Service. Sans modifier votre code, vous pouvez ajouter une configuration Log4j ou Logback pour afficher les journaux métier de chaque exécution de tâche (y compris les tâches distribuées) dans la console.

7 mars 2022

Intégration de Simple Log Service

Vous pouvez consulter directement la pile d'exécution d'une tâche dans la console pour diagnostiquer les tâches bloquées. Pour utiliser cette fonctionnalité, mettez à niveau votre agent vers la version 1.4.0 ou ultérieure.

Aucune

Ajout de la prise en charge de l'intégration avec les exécuteurs développés pour ElasticJob.

1.3.4

Nouvelle fonctionnalité

  • Ajout de la prise en charge des tâches DataWorks.

  • Ajout du plugin schedulerx2-plugin-xxljob pour assurer la compatibilité avec l'interface XxlJob.

6 janvier 2022

2021

Version

Type de modification

Description

Date de publication

Références

1.3.2

Optimisation

Mise à jour de la dépendance Log4j 2 par défaut vers la version 2.15.0.

15 décembre 2021

Aucune

1.3.0.3

Nouvelle fonctionnalité

Amélioration des tâches autonomes au niveau de la seconde. Une boucle autonome au niveau de la seconde peut désormais être distribuée et basculer entre différentes instances. Pour une application Spring Boot, définissez le paramètre suivant : spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (par défaut : false).

26 novembre 2021

Aucune

Optimisation

Amélioration de la réactivité de l'agent lors de l'arrêt.

Aucune

Correction

  • Correction d'un problème entraînant la transmission du heartbeat d'un worker vers un seul service planifié lorsque son agent était connecté à plusieurs groupes d'instances.

  • Correction d'interruptions de thread potentielles et d'exceptions de pointeur nul dans les tâches à délai en secondes.

  • Correction d'un problème de compatibilité provoquant le blocage et l'expiration des tâches lorsque l'agent SchedulerX était intégré à Spring Cloud.

  • Prévention de l'interruption des tâches de diffusion lors de l'exécution simultanée.

  • Correction de l'absence de mise à jour périodique de la liste des workers lors de l'exécution de tâches à délai en secondes.

  • Correction d'un problème où le thread d'analyse d'une tâche de diffusion à délai en secondes ne se terminait pas à la réception d'une instruction d'arrêt.

  • Correction d'un problème où les tâches de diffusion à délai en secondes pouvaient occasionnellement se bloquer lors d'un déploiement groupé à grande échelle des workers.

Aucune

1.2.9.1

Correction

Correction d'un problème de compatibilité provoquant le blocage et l'expiration des tâches lorsqu'un worker était intégré à Spring Cloud.

30 août 2021

Aucune

1.2.9

Nouvelle fonctionnalité

Amélioration des tâches autonomes au niveau de la seconde. Une boucle autonome au niveau de la seconde peut désormais être distribuée et basculer entre différentes instances. Définissez le paramètre spring.schedulerx2.enableSecondDelayStandaloneDispatch=true (par défaut : false).

27 août 2021

Aucune

Correction

Correction des problèmes d'interruption des tâches de diffusion lors de l'exécution simultanée et de l'absence de mise à jour de la liste des workers.

Aucune

1.2.8.3

Correction

Correction d'un problème où le thread d'analyse d'une tâche de diffusion à délai en secondes ne se terminait pas à la réception d'une instruction d'arrêt.

13 août 2021

Aucune

1.2.8.2

Correction

Correction d'un problème où les tâches de diffusion à délai en secondes pouvaient occasionnellement se bloquer lors d'un déploiement groupé à grande échelle des workers.

6 août 2021

Aucune

1.2.8

Nouvelle fonctionnalité

  • Amélioration des tâches de diffusion : vous pouvez désormais utiliser postProcess pour obtenir l'état de tous les workers en appelant JobContext.getTaskStatuses() et leurs résultats d'exécution en appelant JobContext.getTaskResults().

  • Ajout de la prise en charge du sharding pour les tâches de diffusion : vous pouvez désormais obtenir shardingNum et shardingId depuis JobContext pour traiter les données distribuées en fonction de l'index du worker.

  • Amélioration du mode de sharding : le nombre total de shards est désormais disponible via shardingNum dans JobContext.

23 juin 2021

Aucune

1.2.7

Nouvelle fonctionnalité

Ajout d'une option pour désactiver la fonctionnalité de basculement (failover).

28 avril 2021

Aucune

Correction

  • Correction d'une fuite de socket causée par un échec de vérification de l'état du heartbeat.

  • Correction d'un problème où le worker maître MapReduce déclenchait des basculements inutiles lors de la gestion d'un grand nombre de sous-tâches.

Aucune

1.2.5.2

Nouvelle fonctionnalité

Les tâches à délai en secondes prennent désormais en charge les intervalles au niveau de la milliseconde.

8 avril 2021

Aucune

Optimisation

  • Optimisation du modèle MapReduce : la tâche racine s'exécute désormais sur le worker maître, ce qui simplifie le dépannage.

  • Suppression de la dépendance stricte à Log4j 2. Vous pouvez désormais exclure les dépendances Log4j et Log4j 2 lors de l'utilisation de Logback.

Aucune

1.2.4.3

Nouvelle fonctionnalité

  • Ajout de rapports de progression pour les tâches de diffusion pendant l'exécution.

  • Ajout d'une option pour désactiver la journalisation du heartbeat.

21 janvier 2021

Aucune

Correction

  • Ajustement de l'intervalle de heartbeat à 10 secondes.

  • Correction d'un problème critique provoquant le blocage des tâches de diffusion.

Aucune

2020

Version

Type de modification

Description

Date de publication

Références

1.2.3.1

Optimisation

Optimisation de l'agent pour prévenir les échecs de planification dus à des problèmes de connexion persistante sous forte charge.

16 décembre 2020

Aucune

1.2.2.2

Nouvelle fonctionnalité

  • Vous pouvez collecter l'utilisation réelle du CPU depuis l'intérieur d'un conteneur. Cela nécessite une configuration supplémentaire. Par exemple, pour un starter : spring.schedulerx2.enableCgroupMetrics=true,spring.schedulerx2.cgroupPathPrefix=/sys/fs/cgroup/cpu/ (Le paramètre cgroupPathPrefix est facultatif. Si le chemin "/sys/fs/cgroup/cpu/" existe dans le conteneur, vous n'avez pas besoin de configurer ce paramètre. Sinon, remplacez la valeur par le chemin cgroup réel).

  • Prise en charge des tags. Vous pouvez ajouter des tags personnalisés au démarrage d'un agent. Par exemple, avec un starter : spring.schedulerx2.labels=xxx. Dans la gestion des tâches, vous pouvez spécifier les machines pour vos tâches, comme leur exécution sur des instances portant un tag spécifique. Cela s'avère utile pour des scénarios tels que les déploiements canaris et la gestion cellulaire.

10 décembre 2020

Aucune

Optimisation

  • Isolation des threads de heartbeat de l'agent et des threads principaux Akka. Cela empêche une charge métier élevée d'affecter les sondes de heartbeat.

  • Suppression de h2 du shade pour prévenir d'éventuels échecs de chargement du pilote MySQL.

Aucune

1.2.1.2

Nouvelle fonctionnalité

  • Introduction d'un ContainerPool partagé. Toutes les tâches sur un agent peuvent désormais partager un seul pool de threads, ce qui améliore considérablement les performances et la stabilité de l'agent lors de la planification d'un grand nombre de tâches simultanées.

  • Shading de la bibliothèque Scala pour résoudre d'éventuels conflits de dépendances.

  • Prise en charge désormais de l'authentification AppKey dans le cloud public.

  • Amélioration du modèle MapReduce. Vous pouvez désormais configurer si la méthode Reduce s'exécute uniquement après la réussite de toutes les tâches.

  • L'agent SchedulerX prend en charge l'utilisation de -Dschedulerx.appKey pour définir l'appKey.

20 octobre 2020

Aucune

Optimisation

Optimisation du pool de threads Netty de l'agent.

Aucune

Correction

  • Correction d'un problème pouvant entraîner le blocage des tâches de diffusion.

  • Correction d'un problème pouvant entraîner la divulgation de l'ID AccessKey ou du secret AccessKey de Simple Log Service (SLS).

Aucune

1.2.0.2

Nouvelle fonctionnalité

  • Prise en charge désormais de plus de 100 000 tâches par application dans le cloud public.

  • Ajout d'un commutateur de journalisation pour l'agent, activé par défaut.

  • Vous pouvez désormais définir l'état de la tâche lors de sa création avec l'OpenAPI.

  • Suppression des dépendances diamond-client, logger.API et Log4j.

19 août 2020

Aucune

Correction

  • Correction d'un problème où l'agent se déconnectait du serveur lors des tests de panne réseau.

  • Correction d'un problème où les applications dans Enterprise Distributed Application Service (EDAS) ne pouvaient pas lire le secret AccessKey.

Aucune

1.1.4.RELEASE

Nouvelle fonctionnalité

  • Prise en charge désormais des namespaces gérés par l'utilisateur.

  • Prise en charge désormais de l'initialisation de plusieurs instances SchedulerxWorker.

  • Amélioration du modèle MapReduce :

  • La méthode Reduce peut être exécutée même si certaines tâches échouent.

  • Vous pouvez utiliser JobContext.getTaskStatuses pour déterminer l'état de chaque Task. Dans la structure Map<Long, TaskStatus>, la clé est le TaskId et la valeur est l'état de la Task.

15 mai 2020

Aucune

Correction

  • ProcessResult provoque une exception de pointeur nul si le résultat est nul.

  • Un blocage dans thread-dispatcher-delivery entraîne le blocage des tâches.

Aucune

1.1.2.RELEASE

Nouvelle fonctionnalité

shade protobuf et netty depuis AccessKey IDka, résolvant plus de 90 % des conflits de packages JAR.

10 février 2020

Aucune

Optimisation

Limitation des AppKeys à un seul groupe.

Aucune

2019

Version

Type de modification

Description

Date de publication

Références

1.1.0

Nouvelle fonctionnalité

  • Ajout de la prise en charge d'un modèle de partitionnement multilingue, similaire à elastic-job.

  • L'API OpenAPI pour la création de groupes peut désormais renvoyer une AppKey.

  • Vous pouvez désormais réexécuter les instances de tâche dont l'état est réussi. Dans un workflow, la réexécution d'une instance de tâche entraîne également la réexécution de ses tâches en aval.

17 décembre 2019

Aucune

Optimisation

  • Amélioration des performances côté serveur en passant la communication avec le client du mode synchrone au mode asynchrone et en optimisant la configuration par défaut du dispatcher Akka.

  • Les performances des battements de cœur ont été multipliées par trois lors de l'utilisation de l'agent SchedulerX v1.1.0.

  • Refonte de la page Job Management dans la console afin d'afficher davantage d'informations.

Aucune

Correction de problème

  • Correction d'un problème pour lequel les tâches globales pouvaient ne pas prendre effet dans le modèle de tirage distribué.

  • Correction d'un problème pour lequel l'agent SchedulerX pouvait toujours échouer au démarrage dans un environnement de cellule isolée si aucun domaine n'était configuré.

Aucune

1.0.9

Nouvelle fonctionnalité

  • Ajout du paramètre BlockAppStart, qui spécifie s'il faut bloquer le démarrage de l'application en cas d'échec du démarrage de SchedulerX. La valeur par défaut est true.

  • Ajout d'une opération API permettant d'interroger l'état d'un workflow. L'objet de requête est GetWorkflowInstanceRequest.

  • Ajout du champ jobName à JobContext. Les utilisateurs peuvent désormais récupérer le nom de la tâche au moment de l'exécution.

28 novembre 2019

Aucune

Correction de problème

  • Correction d'un problème pour lequel la désérialisation Hessian renvoyait 0 pour BigDecimal.

  • Correction d'une erreur survenue lors de la désérialisation Hessian de LocalDateTime.

  • Correction d'un problème pour lequel les tâches épinglées distribuaient des tâches à des machines non spécifiées si la durée d'exécution de la tâche dépassait un certain seuil.

  • L'appel client à springContext.getBean génère une exception AnnotationConfigApplicationContext has not been refreshed yet.

  • Correction d'un problème pour lequel une configuration de classe d'implémentation de tâche invalide pouvait arrêter le ServletWebServer Spring Boot, entraînant l'arrêt du service web tandis que le processus métier continuait de s'exécuter.

  • Correction d'un problème pour lequel une tâche se bloquait si la variable de démarrage système user.dir='/' était définie.

  • Le client génère une exception AnnotationConfigApplicationContext has been closed already lors de l'appel à springContext.getBean.

  • Correction d'un problème rare pour lequel l'agent SchedulerX générait des ID de worker en double, entraînant le déclenchement de tâches sur des machines extérieures à l'application cible.

  • Les applications Spring ne peuvent pas personnaliser le class loader.

  • Correction d'un problème pour lequel le compteur des tâches d'exécution broadcast affichait une valeur incorrecte pour les tâches à délai en secondes.

  • Correction d'un problème pour lequel jobContext.getScheduleTime n'était pas mis à jour à chaque cycle pour une tâche à délai en secondes.

Aucune

1.0.8

Nouvelle fonctionnalité

  • Important : Refonte de l'interface JobProcessor.postProcess pour qu'elle renvoie une valeur ProcessResult. Vous devez mettre à jour votre code si vous utilisez l'interface postProcess.

  • Amélioration de l'exécution broadcast. BroadcastJobProcessor prend désormais en charge preProcess et postProcess. La méthode preProcess s'exécute une fois avant que la méthode process ne soit exécutée sur toutes les machines, et la méthode postProcess s'exécute une fois après la fin de la méthode process sur toutes les machines.

  • Vous pouvez utiliser JobContext.getTaskAttempt pour récupérer le nombre de tentatives de la sous-tâche actuelle.

  • L'agent SchedulerX prend désormais en charge les ports d'écoute personnalisés via des méthodes telles que SchedulerxWorker.setPort.

  • Les tâches Java peuvent désormais implémenter JobProcessor et ne sont plus obligées d'étendre JavaProcessor.

6 août 2019

Aucune

Correction de problème

  • Correction d'un bug pour lequel les sous-tâches de TaskId=1 ne prenaient pas en charge la nouvelle tentative automatique.

  • Correction d'un problème pour lequel la cause de l'échec n'était pas affichée lorsque la tâche racine d'une tâche distribuée échouait.

  • Correction d'un problème empêchant la nouvelle tentative de tâches depuis la liste des tâches d'une tâche de calcul parallèle.

Aucune

1.0.6-compatible

Optimisation

Publication d'une version compatible avec l'interface schedulerx1,0(DTS). Cette version prend uniquement en charge une dépendance au package schedulerx-worker, et non aux packages schedulerx-client et schedulerx-worker. Toutes les tâches Data Transmission Service (DTS) doivent être migrées vers SchedulerX 2.0.

2 juillet 2019

Aucune

1.0.6

Nouvelle fonctionnalité

  • Masquage de plusieurs packages, notamment aliyun-log, commons-validator, gson, fastjson, guava, commons-collections.

  • Si vous renvoyez ProcessResult(false, errorMsg), le errorMsg est également affiché dans le journal frontend.

Optimisation

  • Amélioration des performances de at-least-once-delivery.

  • Optimisation de la distribution des messages dans les scénarios à forte charge pour éviter que des messages répétés ne bloquent les tâches à délai en secondes ou n'interrompent les threads de l'application.

2 juillet 2019

Remarque

Pour cette version, le numéro de version affiché dans la console est 1.0.4, ce qui diffère du numéro de version Maven.

Correction de problème

  • Correction d'un problème pour lequel les tâches d'exécution broadcast se bloquaient.

  • Correction d'un problème pour lequel les tâches à délai en secondes se bloquaient.

  • at-least-once-delivery peut entraîner une nouvelle tentative infinie d'une sous-tâche.

  • Correction d'un problème pour lequel l'agent SchedulerX échouait au démarrage si logcollector échouait à s'initialiser.

  • Correction d'un problème empêchant la replanification d'un workflow après la suppression de ses instances de tâche de la base de données.

  • Correction d'un problème empêchant l'arrêt des applications basées sur Spring avec la commande kill.

1.0.3

Nouvelle fonctionnalité

  • Dans le modèle MapReduce, la méthode Reduce peut désormais traiter les résultats de toutes les tâches.

  • Le modèle distribué prend désormais en charge un modèle de tirage. Ce modèle résout les goulots d'étranglement de performance sur une seule machine et prend en charge la mise à l'échelle dynamique pour le tirage des tâches.

  • Le modèle de tirage prend désormais en charge une limite de concurrence globale des tâches pour la limitation du débit.

  • Ajout du champ wfInstanceId à JobContext.

  • L'agent SchedulerX génère désormais une exception et bloque le démarrage de la JVM en cas d'échec du démarrage de l'agent. Cela permet d'identifier les problèmes plus tôt.

  • L'agent SchedulerX imprime désormais les versions et les chemins des JAR dépendants de Maven au démarrage pour aider à résoudre les conflits de packages.

  • Ajout d'une dimension de file d'attente à la vue des détails des tâches dans le modèle distribué. Vous pouvez désormais afficher la file d'attente des tâches mises en cache sur chaque machine.

6 juin 2019

Aucune

Correction de problème

  • Correction d'un problème pour lequel les workers incorrectement mis en quarantaine ne pouvaient pas récupérer automatiquement sans redémarrer l'agent SchedulerX.

  • Correction d'un problème pour lequel la vue des détails des tâches dans le modèle distribué n'affichait pas avec précision le nombre de tâches en cours d'exécution sur chaque machine.

  • Correction d'un problème pour lequel le serveur ne nettoyait pas les ressources sur les nœuds esclaves en cas de défaillance du nœud maître, provoquant des fuites de mémoire.

Aucune

1.0.0

Nouvelle fonctionnalité

  • Prend en charge les expressions crontab et fixed_rate pour la planification périodique.

  • Ajout de la prise en charge de la planification de workflow pour l'orchestration des tâches.

  • Prend en charge l'expression second_delay pour la planification au niveau de la seconde.

  • Ajout de la prise en charge des types de tâches Java, Shell, Python et Go.

  • Ajout de la prise en charge de l'exécution autonome, de l'exécution broadcast, du calcul parallèle, de la grille mémoire et du calcul en grille.

  • Ajout de la prise en charge des modèles de programmation distribuée Map et MapReduce.

  • Ajout de la prise en charge des nouvelles tentatives automatiques en cas d'échec, tant au niveau de l'instance de tâche qu'au niveau de la tâche. Cette fonctionnalité est désactivée par défaut.

  • Ajout de la prise en charge de l'heure des données et du remplissage rétroactif.

30 avril 2019

Aucune