Con il middleware, posso eseguire il codice all'inizio e alla fine di ogni richiesta HTTP.Esegui codice prima di qualsiasi comando di gestione di django
Con le attività di Celery posso ottenere lo stesso utilizzando i segnali task_prerun
e task_postrun
.
E i comandi di gestione di django? È possibile avere un codice che viene eseguito all'inizio (e possibilmente alla fine) di ogni comando di gestione di django? Tale codice deve anche sapere quale comando di gestione di django sta per essere eseguito (o ha finito di funzionare). C'è un biglietto su un signal on application startup che può o non può fare quello che voglio, ma non è comunque pronto.
Questo era il mio pensato anche. Un altro approccio, tutt'altro che del tutto pulito, sarebbe quello di MonkeyPatch django.core.management.base.py, in particolare 'BaseCommand.execute()', e mettere intorno un wrapper. –
Beh, se ti piacciono le patch per le scimmie, certo ... Cosa ti piacerebbe ottenere in primo luogo? –
Beh, per prima cosa, mi piacerebbe che la mia scimmia smettesse di schiantarsi mentre giocavo a WoW. :-) –