2017-05-10 1 views
1

Je quartz configuré pour fonctionner dans le cluster ici ma config simple, quartzemploi Quartz toujours exécuté sur un même nœud

org.quartz.scheduler.instanceName = emploi-planificateur

org.quartz.scheduler.instanceId=AUTO 
org.quartz.threadPool.threadCount=5 
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX 
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
org.quartz.jobStore.useProperties=true 
org.quartz.jobStore.misfireThreshold=10000 
org.quartz.jobStore.tablePrefix=QRTZ_ 

org.quartz.jobStore.isClustered=true 
org.quartz.jobStore.clusterCheckinInterval=20000 

J'ai deux noeuds d'exécution Cependant, lorsque je planifie une tâche à exécuter chaque seconde, je peux voir qu'elle est exécutée uniquement sur node1. Si je mets en pause le planificateur sur le noeud 1, la tâche se déplacera vers le noeud 2 et y restera même lorsque le noeud 1 sera de nouveau en ligne. Comment puis-je faire des déviations uniformément déviées entre les nœuds?

Merci

Répondre

0

This pourrait être utile. Si votre cluster n'est pas très occupé, un nœud peut finir par faire tout le travail, car chaque fois qu'il termine un travail, il va chercher plus de travail et trouver la prochaine exécution du travail qu'il vient de terminer. L'autre noeud de votre cluster interrogera périodiquement pour le travail, mais sera moins susceptible de trouver quoi que ce soit qui ait besoin de le faire.

Avez-vous une raison de vouloir répartir le travail plus uniformément sur votre cluster? Est-ce que quelque chose ne se fait pas? Si un nœud accepte plus de travail que ce qu'il est capable de terminer, vous pouvez envisager d'activer le threadCount.

+0

Merci pour la réponse. C'est juste venu quand j'ai écrit des tests pour le cluster. Il n'y a pas de véritable problème ici –