Camunda Job Executor expliqué : Architecture, Configuration et Dépannage

 

Camunda Job Executor expliqué (Architecture, Configuration et Dépannage)

Le Job Executor de Camunda est le cœur du traitement asynchrone dans Camunda BPM.
Si vos workflows utilisent des timers, des tâches asynchrones ou des retries, c’est ce composant qui exécute tout en arrière-plan.

Dans ce guide, vous allez apprendre :

  • L’architecture interne

  • La configuration

  • Le dépannage des problèmes courants


🔹 1. Qu’est-ce que le Job Executor ?

Le Job Executor exécute les jobs en arrière-plan, comme :

  • Événements timer

  • Service tasks async

  • Retries des jobs échoués

👉 Il fonctionne comme un pool de threads qui interroge la base de données et exécute les jobs disponibles


🔹 2. Architecture du Job Executor


Composants principaux

  1. Table ACT_RU_JOB

    • Stocke les jobs

    • Contient lock, retries, due date

  2. Thread d’acquisition

    • Récupère les jobs disponibles

    • Verrouille les jobs

  3. Thread pool

    • Exécute les jobs en parallèle


Flux d’exécution

  1. Création du job (async/timer)

  2. Stockage dans ACT_RU_JOB

  3. Acquisition et verrouillage

  4. Exécution par thread

  5. Suppression après succès


🔹 3. Job Executor en mode cluster

4
  • Chaque nœud a son Job Executor

  • Base de données partagée

  • Coordination via verrouillage DB

👉 Permet une scalabilité horizontale


🔹 4. Configuration du Job Executor

Exemple de configuration

<job-executor>
<job-acquisition name="default">
<properties>
<property name="maxJobsPerAcquisition">5</property>
<property name="waitTimeInMillis">8000</property>
<property name="lockTimeInMillis">400000</property>
</properties>
</job-acquisition>
<properties>
<property name="corePoolSize">5</property>
<property name="maxPoolSize">10</property>
</properties>
</job-executor>

Paramètres importants

ParamètreDescription
maxJobsPerAcquisitionNombre de jobs récupérés
waitTimeInMillisIntervalle de polling
lockTimeInMillisDurée du verrou
corePoolSizeThreads minimum
maxPoolSizeThreads maximum

🔹 5. Problèmes courants et dépannage

🚨 Jobs non exécutés

Symptômes :

  • Process bloqué

  • Jobs présents en base

Solution :

  • Vérifier Job Executor activé

  • Vérifier thread pool


🚨 Jobs bloqués / lents

Causes :

  • Appels API longs

  • Base de données lente

Solution :

  • Utiliser External Tasks

  • Augmenter les threads


🚨 Un seul nœud exécute tout

Solution :

jobExecutorDeploymentAware = false

🚨 Problème de retries

camunda:failedJobRetryTimeCycle="R5/PT5M"

🔹 6. Bonnes pratiques

✅ Utiliser asyncBefore
✅ External Tasks pour tâches longues
✅ Monitorer :

  • ACT_RU_JOB

  • ACT_RU_EXECUTION

✅ Optimiser :

  • Thread pool

  • Batch size


🔹 7. Résumé

  • Job Executor = moteur d’exécution async

  • Fonctionne via DB + thread pool

  • Nécessite tuning pour performance

  • Problèmes fréquents liés à DB ou config


🔹 📚 Articles recommandés

👉 Consultez aussi :


💼 Support professionnel disponible

Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM, Flowable), DMN/Drools.

📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com

🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium     



Comments

Popular posts from this blog

OOPs Concepts in Java | English | Object Oriented Programming Explained

Scopes of Signal in jBPM

jBPM Installation Guide: Step by Step Setup