SpringBoot intègre xxl-job pour réaliser la gestion des tâches de synchronisation

insérez la description de l'image ici

Résumé

XXL-Job est un puissant cadre de planification de tâches distribuées, qui peut tirer davantage parti après l'intégration de Spring Boot. Il offre divers avantages tels que la planification distribuée des tâches, le rapport d'exécution des tâches, le centre de planification des tâches, une bonne évolutivité, le déploiement de clusters distribués, la surveillance et les alarmes. De plus, XXL-Job est open source et gratuit, et le code source et la documentation détaillée peuvent être obtenus sur GitHub. Une documentation détaillée et des directives d'utilisation peuvent être trouvées dans la documentation officielle de XXL-Job.

Les avantages de XXL-Job

Lors de l'intégration de XXL-Job et Spring Boot, les avantages de XXL-Job incluent :

  1. Planification distribuée des tâches : XXL-Job offre la capacité de planification distribuée des tâches, qui peut exécuter des tâches de synchronisation, de cycle, CRON et autres sur plusieurs serveurs en même temps.

  2. Rapport d'exécution des tâches : XXL-Job fournit un rapport d'exécution des tâches, où vous pouvez afficher l'état d'exécution des tâches, les journaux d'exécution, les résultats des tâches, etc., pour faciliter le dépannage et surveiller l'état d'exécution des tâches.

  3. Centre de planification des tâches : XXL-Job est équipé d'un centre de planification des tâches, qui peut configurer et gérer les tâches via l'interface Web, prendre en charge la modification dynamique de la configuration des tâches et réaliser une gestion et un fonctionnement visuels.

  4. Bonne évolutivité : XXL-Job peut facilement intégrer diverses logiques métier et traitements de tâches en écrivant JobHandler, et prend en charge le développement et la gestion de Job personnalisés.

  5. Déploiement de cluster distribué : XXL-Job prend en charge le déploiement de cluster distribué, offre une évolutivité et une haute disponibilité, et s'adapte aux scénarios de planification de tâches à grande échelle et à forte simultanéité.

  6. Surveillance et alarme : XXL-Job fournit une multitude d'indicateurs de surveillance et de mécanismes d'alarme, qui peuvent détecter les anomalies et les erreurs dans l'exécution des tâches en temps opportun, et fournir des rappels par e-mails, SMS, etc.

  7. Open source et gratuit : XXL-Job est un projet open source, libre d'utiliser et d'obtenir le code source et la documentation sur GitHub.

Vous pouvez trouver une documentation plus détaillée et un guide d'utilisation sur la documentation officielle de XXL-Job . Ce document contient des instructions détaillées et des exemples de codes pour l'installation et le déploiement de XXL-Job, la configuration des tâches, la stratégie de planification, le rapport d'exécution des tâches, etc.

Travail XXL intégré

environnement d'exploitation

  • Système MAC10.15
  • Maven3.8.6
  • Jdk1.8
  • Mysql8.0
  • IDÉE2021

Exécuter XXL-Job

1. Télécharger XXL Job

En se référant à la documentation officielle, nous devons télécharger un projet xxl-job.
Gîte
Github

2. Créer une base de données et importer des données

Le répertoire du fichier de code source téléchargé à partir de Gitee /xxl-job/doc/dbcontient un fichier SQL ci-dessous tables_xxl_job.sql, puis crée une base de données dans la base de données xxl-jobIci, je peux modifier moi-même le nom de la base de données comme valeur par défaut du système ; puis exécutez le fichier SQL pour importer le tableau ci-dessous.
insérez la description de l'image ici

3. Modifier la configuration de la connexion à la base de données

La connexion à la base de données est configurée dans le répertoire du projet xxl-job-admin/src/main/resources/application.propertiesSi vous devez configurer la boîte aux lettres d'envoi, vous devez configurer spring.mailtoutes les informations de configuration.
insérez la description de l'image ici

4. Démarrer le projet

Après avoir démarré le projet dans IDEA, visitez : http://localhost:8080/xxl-job-admin , compte par défaut : admin, mot de passe : 123456
insérez la description de l'image ici
Après vous être connecté, la page d'accueil :
insérez la description de l'image ici
le suivi doit configurer l'exécuteur et les tâches sont toutes terminées sur cette page.

intégration de projet

1. Importer des dépendances

<!-- xxl-job-core依赖 -->
<!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.3.0</version>
</dependency>

2. Configurer les informations application.yml

# Xxl-Job分布式定时任务调度中心
xxl:
  job:
    ### 执行器通讯TOKEN [选填]:非空时启用;
    accessToken:
    admin:
      ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
      addresses: http://127.0.0.1:8080/xxl-job-admin
    executor:
      ### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
      address:
      ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
      appname: ddz-job-executor
      ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
      ip:
      ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
      port: 9999
      ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
      logpath: /User/ddz/data/applogs/xxl-job/jobhandler
      ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
      logretentiondays: 30

3. Classe de configuration XxlJobConfig

Cette classe de configuration se trouve dans le répertoire du projet que nous avons téléchargé : xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java, nous pouvons l'utiliser après l'avoir copiée.

@Configuration
public class XxlJobConfig {
    
    
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @Value("${xxl.job.executor.appname}")
    private String appname;

    @Value("${xxl.job.executor.address}")
    private String address;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.executor.logpath}")
    private String logPath;

    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;


    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
    
    
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

    /**
     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
     *
     *      1、引入依赖:
     *          <dependency>
     *             <groupId>org.springframework.cloud</groupId>
     *             <artifactId>spring-cloud-commons</artifactId>
     *             <version>${version}</version>
     *         </dependency>
     *
     *      2、配置文件,或者容器启动变量
     *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
     *
     *      3、获取IP
     *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
     */
}

4. Créer une démo de test de tâche XxlJobTest

@Slf4j
@Component
@RequiredArgsConstructor
public class XxlJobTest {
    
    

    @XxlJob("xxlJobTest")
    public ReturnT<String> xxlJobTest(String date) {
    
    
        // 获取任务参数
        XxlJobContext xxlJobContext = XxlJobContext.getXxlJobContext();
        String jobParam = xxlJobContext.getJobParam();
        log.info("---------xxlJobTest定时任务执行成功--------{}", jobParam);
        return ReturnT.SUCCESS;
    }
}

essai

ajouter un exécuteur testamentaire

Accédez à http://localhost:8080/xxl-job-admin et connectez-vous.
insérez la description de l'image ici
Nous choisissons la méthode d'enregistrement pour qu'elle soit automatique, et il est possible que la machine en ligne ne puisse pas être obtenue après l'avoir ajoutée ; à ce stade, nous n'avons qu'à redémarrer notre propre projet pour obtenir automatiquement le succès.
insérez la description de l'image ici

Ajouter une tâche

insérez la description de l'image ici

effectuer des tâches

Après avoir démarré la tâche, nous pouvons afficher l'enregistrement d'exécution dans le journal de planification.
insérez la description de l'image ici

Afficher les journaux de planification

insérez la description de l'image ici
À ce stade, votre application Spring Boot a intégré XXL-Job. Lorsque le déclencheur configuré remplit les conditions, l'exécuteur xxl-job appellera automatiquement la méthode JobHandler correspondante pour le traitement de la tâche.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45626288/article/details/131561138
conseillé
Classement