Sto usando Sinatra per la mia webapp. Ho un po 'di codice di pulizia che voglio eseguire quando la mia app è in fase di spegnimento. C'è un gancio per questo in Sinatra o devo usare un meccanismo separato?dove posso inserire il codice in Sinatra che voglio eseguire quando l'app è in arresto?
7
A
risposta
8
Guarda Kernel#at_exit, non vedo perché non dovrebbe funzionare in un'app Sinatra se si definisce un blocco del genere da qualche parte nel file principale dell'app.
Aggiornamento: Secondo il commento di Matt, è necessario definire il gestore at_exit
prima di richiedere Sinatra.
Problemi correlati
- 1. Dove posso inserire il codice in Sinatra (ruby web framework) che voglio solo eseguire una volta?
- 2. Dove posso inserire il file txt che voglio leggere in Java?
- 3. Dove inserire il codice per l'avvio dell'applicazione?
- 4. Come eseguire il lavoro Sinatra in background?
- 5. Dove posso inserire il mio progetto prima_request
- 6. Dove inserire il codice comune trovato in più modelli?
- 7. Dove inserire codice comune per iPhone, CLLocationManager
- 8. Come posso eseguire il debug in un framework in Xcode?
- 9. Inserire il codice PHP in una stringa
- 10. Dove inserire il codice di avvio di Django?
- 11. La primavera ha un processo di arresto per inserire il codice di pulizia?
- 12. Come posso inserire il codice JavaScript in un documento PDF?
- 13. Come posso eseguire codice che ho scritto in JavaScript?
- 14. In WiX, dove è specificato il codice prodotto?
- 15. Dove devo inserire il codice specifico WPF quando si utilizza MVVM?
- 16. Dove posso inserire il mio codice di back-end per il tentativo di resque-retry?
- 17. Dove posso eseguire il comando Atom?
- 18. Inserire il valore in TEXTAREA dove il cursore era
- 19. Dove inserire il codice jQuery specifico per pagina in Rails 4.1?
- 20. Come posso eseguire sinatra all'interno dell'applicazione di binari esistente?
- 21. Controllare a livello di codice un elemento nell'elenco di checkbox dove il testo è uguale a quello che voglio
- 22. Che cos'è il modulo win32con in python? Dove posso trovarlo?
- 23. Dove inserire il file di configurazione ServiceLoader in un'app Web
- 24. Come posso eseguire il codice quando il valore di una variabile cambia in C#?
- 25. Voglio eseguire il debug (impostare un punto di interruzione in) System.Web.Mvc.DefaultControllerFactory, è possibile?
- 26. Dove inserire il file LICENSE in un'applicazione Symfony?
- 27. Posso abilitare SSL in Sinatra con Thin?
- 28. In MVC, dov'è il posto giusto dove inserire il codice di autorizzazione?
- 29. Come posso eseguire il codice memorizzato in un database?
- 30. Come posso cancellare un file in Sinatra dopo che è stato inviato tramite send_file?
Ho avuto l'impressione che venga chiamato solo una volta che tutti i thread sono usciti. Vado a provarlo anch'io. Una delle cose specifiche che devo fare è chiudere alcuni thread, quindi se questo è il caso, non funzionerà per me. – pquimo
Questo potrebbe non funzionare, a seconda di come si avvia Sinatra, poiché [Sinatra utilizza 'at_exit' stesso] (https://github.com/sinatra/sinatra/blob/v1.3.2/lib/sinatra/main.rb#L25) per avviare il suo server integrato, quindi qualsiasi gestore 'at_exit' che aggiungi verrà effettivamente eseguito _prima_ Sinatra si avvia. – matt
Interessante. Mi chiedo se dovrei cancellare la mia risposta o tenerla per il momento. Forse aspetterò fino a quando @pquimo farà rapporto. –