EJB ou servlet - Comment ajouter un "commutateur" pour forcer un processus / thread à arrêter

StackOverflow https://stackoverflow.com/questions/3283768

  •  17-09-2020
  •  | 
  •  

Question

genre d'une question ouverte que je rencontre une fois de temps en temps - si vous avez une haricot d'état ou d'état éjection EJB, ou éventuellement un processus de servlet direct, qui peut, avec les mauvais paramètres, commencez à fonctionner longtemps sur un système de production, commentPourriez-vous ajouter efficacement un «commutateur» manuel »pour un administrateur / personne pour tuer spécifiquement ce fil / processus?

Était-ce utile?

La solution

Vous ne pouvez pas, ou au moins vous ne devriez pas, n'interfère pas directement les fils de serveur d'applications.Donc, un "interrupteur de tuer" l'air définitivement inapproprié pour moi dans un environnement Java EE.

Je comprends cependant le problème que vous avez, mais vous préféreriez suggérer de prendre une approche asynchrone dans laquelle vous vous séparez votre emploi dans une unité de travail plus petite.

J'ai fait cela à l'aide de la minuterie d'EJB et j'étais satisfait du résultat: une minuterie initiale est créée pour la première unité de travail.Quand l'application.Server exécute la minuterie, il enregistre ensuite comme secondaire correspondant à la 2e unité de travail, etc. Les informations peuvent être transmises à une unité de travail à l'autre, car les minuteries EJB prennent en charge le stockage des informations personnalisées.En outre, l'exécution de la minuterie et l'enregistrement sont transactionnelles, ce qui convient à travailler avec la base de données.Vous pouvez même arrêter et redémarrer l'application STR avec cette approche.Avant que chaque unité de travail a couru, nous avons enregistré une base de données si le travail avait été annulé entre-temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top