Durante il test di django cashing sul nostro server di sviluppo, uno dei nostri senior ha chiesto se è possibile modificare il valore del timeout della cache su urls.py
senza riavviare il servizio http.
Alla prima nota, ero sicuro al 100% che si possa fare cambiando il valore di timeout in modo dinamico.
Ad esempio - Come suggerito dal mio altro collega, Se salviamo il valore di timeout in un file xml separato e leggiamo questo valore di file in urls.py e assegniamo quel valore al comando di caching, quindi cambiando il valore nel file xml , il timeout di memorizzazione nella cache verrà aggiornato senza riavviare il servizio http.
Tuttavia, quando abbiamo verificato ciò, abbiamo capito che funziona solo al primo colpo dato che urlpattern object
è passato al server django e urls.py
non viene mai eseguito nuovamente a meno che il servizio http non venga riavviato.
Alla fine per soddisfare i nostri requisiti, abbiamo dovuto scrivere qualche altro script all'interno della funzione di visualizzazione per caricare di nuovo urls.py in modo che legga il nuovo valore di timeout della cache.
Quindi la mia domanda è: perché urls.py non viene caricato ogni volta su ogni url hit, ma solo una volta alla prima ?, dove si trova questo oggetto urlpattern ?, Qualsiasi idea!