Pour Java, il est recommandé d'utiliser quartz 1. Quartz est très pratique pour effectuer diverses tâches planifiées 2 Le principe est de s'assurer que la même tâche n'est exécutée que sur. un service via des tables de base de données.
En supposant que vous utilisez quartz de la manière la plus simple, vous devez alors le modifier dans le code et ajouter l'opération d'acquisition du verrou dans la logique du travail. Ce verrou peut être appliqué à la base de données. : insérer une ligne ayant une signification commerciale Lorsque l'enregistrement de clé primaire est exécuté, une seule insertion du même travail dans le cluster réussira, ce qui signifie qu'il a obtenu le verrou et peut être exécuté. Sinon, le travail sera quitté et. ne sera pas exécuté.
Les fonctionnalités de clustering de Quartz apportent à la fois haute disponibilité et évolutivité à votre planificateur via des fonctionnalités de basculement et d'équilibrage de charge.
quartz lui-même prend en charge le clustering, la tolérance aux pannes et l'équilibrage de charge. Ceci peut être réalisé sans modifier aucun code.
Vous pouvez créer un système middleware qui gère spécifiquement le déclenchement des tâches planifiées ainsi que l'abonnement et la consommation des messages. Lorsque l'heure est déclenchée, un message sera envoyé et le système de cluster s'abonnera à ce message. Les messages peuvent être transmis de manière aléatoire à n'importe quelle machine du cluster.
Une machine diffusera des messages à d'autres machines lorsqu'elle commencera à chronométrer. Mais l'intervalle de temps de chaque machine pose problème. Elles sont toutes allumées régulièrement avant l'envoi du message...
Utilisez zookeeper, redis, etc. pour stocker manuellement l'état d'exécution des tâches planifiées et d'autres informations afin de garantir qu'elles ne sont exécutées qu'une seule fois.
Extrayez les tâches planifiées dans un projet séparé (exécuté sur une seule machine), mais le contenu spécifique de la tâche appelle des services distribués spécifiques via des appels à distance (dubbo, mq, etc.). C'est-à-dire que les tâches planifiées ne sont utilisées que pour le déclenchement de tâches et que des tâches spécifiques sont exécutées de manière distribuée.
Utilisez divers systèmes de planification de tâches distribués, tels que Uncode-Schedule
Pour Java, il est recommandé d'utiliser quartz
1. Quartz est très pratique pour effectuer diverses tâches planifiées
2 Le principe est de s'assurer que la même tâche n'est exécutée que sur. un service via des tables de base de données.
En supposant que vous utilisez
quartz
de la manière la plus simple, vous devez alors le modifier dans le code et ajouter l'opération d'acquisition du verrou dans la logique du travail. Ce verrou peut être appliqué à la base de données. : insérer une ligne ayant une signification commerciale Lorsque l'enregistrement de clé primaire est exécuté, une seule insertion du même travail dans le cluster réussira, ce qui signifie qu'il a obtenu le verrou et peut être exécuté. Sinon, le travail sera quitté et. ne sera pas exécuté.Configurer le clustering avec JDBC-JobStore
Les fonctionnalités de clustering de Quartz apportent à la fois haute disponibilité et évolutivité à votre planificateur via des fonctionnalités de basculement et d'équilibrage de charge.
quartz lui-même prend en charge le clustering, la tolérance aux pannes et l'équilibrage de charge. Ceci peut être réalisé sans modifier aucun code.
Le framework Quartz prend en charge le clustering
Vous pouvez créer un système middleware qui gère spécifiquement le déclenchement des tâches planifiées ainsi que l'abonnement et la consommation des messages. Lorsque l'heure est déclenchée, un message sera envoyé et le système de cluster s'abonnera à ce message. Les messages peuvent être transmis de manière aléatoire à n'importe quelle machine du cluster.
Une machine diffusera des messages à d'autres machines lorsqu'elle commencera à chronométrer. Mais l'intervalle de temps de chaque machine pose problème. Elles sont toutes allumées régulièrement avant l'envoi du message...
Utilisez zookeeper, redis, etc. pour stocker manuellement l'état d'exécution des tâches planifiées et d'autres informations afin de garantir qu'elles ne sont exécutées qu'une seule fois.
Extrayez les tâches planifiées dans un projet séparé (exécuté sur une seule machine), mais le contenu spécifique de la tâche appelle des services distribués spécifiques via des appels à distance (dubbo, mq, etc.). C'est-à-dire que les tâches planifiées ne sont utilisées que pour le déclenchement de tâches et que des tâches spécifiques sont exécutées de manière distribuée.
Utilisez divers systèmes de planification de tâches distribués, tels que Uncode-Schedule
Tendance à créer un programme autonome