Implementazione di una struttura simile a un buffer in Python
-
03-07-2019 - |
Domanda
Sto provando a scrivere una piccola applicazione wsgi che metterà alcuni oggetti in una coda esterna dopo ogni richiesta. Voglio farlo in batch, cioè. fare in modo che il webserver inserisca l'oggetto in una struttura simile a un buffer in memoria e un altro thread e / o processo per inviare questi oggetti alla coda in batch, quando il buffer è abbastanza grande o dopo un determinato timeout e azzerare il buffer. Non voglio essere nella sindrome di NIH e non voglio preoccuparmi di cose di threading, tuttavia non sono riuscito a trovare un codice adatto per questo lavoro. Eventuali suggerimenti?
Soluzione
Esamina https://docs.python.org/library/queue.html per vedere se soddisfa le tue esigenze.
Altri suggerimenti
Dato che scrivi " thread e / o process " ;, vedi anche multiprocessing.Queue e multiprocessing.JoinableQueue da 2.6. Quelle sono varianti tra processi della coda.
Usa un stream bufferizzato se stai usando python 3.0.