Mi piacerebbe realizzare un comando 'graziosa shutdown' per la mia webapp (in contrapposizione al mio primo istinto, che è quello di chiedere solo alle persone di uccidere il processo)Come si implementa un comando di spegnimento in un server WAI?
I miei primi due tentativi consistevano
liftIO exitSuccess
E.yield (responseLBS statusOK [G.contentType "text/plain"] "") E.EOF
Entrambi i quali appena allegramente ha restituito un risultato al client e continuò ad ascoltare. C'è qualcosa che un'applicazione può fare per uccidere il server? Questa è anche una cosa ragionevole da voler fare?
Confesso che non ho una comprensione molto forte di iteratee, solo abbastanza per sapere che posso consumare il mio input e che Iteratee è un'istanza MonadIO.
strizzando gli occhi https://groups.google.com/forum/#!topic/yesodweb/VoenrabRUBQ, un trucco che sembra * * a lavorare per me è quello di utilizzare Concurrent Haskell: (1) Forcella fuga applicazione (2) attendere su un MVar e (3) quando sono pronto a smettere, basta mettere qualcosa in quel MVar ... – kowey
Questo è quello che consiglierei pure. –