2010-03-31 4 views
1

J'ai 2 cas qui met en œuvre 2 ID d'instance différents dans 2 différents services Windows comme:Quartz.NET instance Manipulation

//windows service 1 instance 1 
properties["quartz.scheduler.instanceName"] = "instanceName1"; 
properties["quartz.scheduler.instanceId"] = "instanceID1"; 

//windows service 2 instance 2 
properties["quartz.scheduler.instanceName"] = "instanceName2"; 
properties["quartz.scheduler.instanceId"] = "instanceID2"; 

Dans le ADOJobstore, je peux voir qu'il ya deux cas. Toutefois, lorsque je planifie un travail simple dans instance1, il est déclenché dans instance2 (et vice versa). En regardant les enregistrements créés dans jobstore, le travail planifié est correctement étiqueté avec les instancesID attendues. Une idée de pourquoi cela se passe-t-il?

Répondre

3

Ceci est le comportement attendu. Si deux instances pointent vers le même magasin, l'une ou l'autre instance peut en tirer des tâches. Fondamentalement, vous exécutez un cluster de planificateurs et AFAIK il n'y a aucun moyen de limiter les tâches à l'exécution sur un serveur particulier. Vous devrez configurer 2 magasins de travaux différents si vous souhaitez que les travaux s'exécutent sur un serveur particulier.