EJB o Servlet - Come aggiungere un 'kill switch' per forzare un processo / filo per fermare

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

  •  17-09-2020
  •  | 
  •  

Domanda

Tipo di una domanda aperta che mi imbatto in una volta in un po '- Se si dispone di un fagiolo in stato di stato e apolide, o possibilmente un processo servletrico diretto, che può con i parametri errati iniziando a funzionare a lungo su un sistema di produzione, comePotresti aggiungere efficacemente in un manuale 'kill switch' per un amministratore / persona per uccidere specificamente quel filetto / processo?

È stato utile?

Soluzione

Non è possibile, o almeno non dovresti, interferire direttamente con i thread del server delle applicazioni direttamente.Quindi un "switch kill" sembra definitivamente inappropriato per me in un ambiente Java ee.

Io capisco comunque il problema che hai, ma preferirei suggerire di prendere un approccio asincrono in cui ti dividi il lavoro in unità di lavoro più piccola.

L'ho fatto usando timer EJB ed è stato contento del risultato: viene creato un timer iniziale per la prima unità di lavoro.Quando l'app.Il server esegue il timer, quindi registrare come secondo che corrisponde alla 2a unità di lavoro, ecc. Le informazioni possono essere passate al modulo un'unità di lavoro all'altra perché i timer EJB supportano la memorizzazione delle informazioni personalizzate.Inoltre, l'esecuzione del timer e la registrazione è transazionale, che va bene per lavorare con il database.Puoi persino spegnere e riavviare l'applicazione sever con questo approccio.Prima che ogni unità di lavoro corresse, abbiamo controllato il database se il lavoro è stato cancellato nel frattempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top