2010-09-18 4 views
21

Google App Engine task queues hanno configurazione come (ad esempio)Cosa si intende per "bucket-size" della coda nel motore dell'app google?

<queue> 
    <name>mail-queue</name> 
    <rate>5/m</rate> 
    <bucket-size>10</bucket-size> 
    </queue> 

Ecco, che cosa fa il 'secchio-size' dire? Non sono riuscito a trovare una documentazione completa su questo nella documentazione del motore di app di Google.

Specificare questo come 10 significa che se 100 attività vengono accodate in un istante solo 10 di esse saranno messe in coda e il resto verrà ignorato?

risposta

32

secchio-size è descritto perfettamente here:

Limita il burstiness di elaborazione della coda, cioè una dimensione secchio elevata consente picchi maggiori nel tasso di esecuzione della coda. Ad esempio, considera una coda con una velocità di 5/se una dimensione del bucket di 10. Se quella coda è rimasta inattiva per un po 'di tempo (permettendo al suo "token bucket" di riempire), e 20 attività vengono improvvisamente accodate, essere autorizzati ad eseguire 10 compiti immediatamente. Ma nel secondo seguente, solo 5 ulteriori attività potranno essere eseguite perché il bucket di token è stato esaurito e si sta ricaricando alla velocità specificata di 5/s.

Se non viene specificato alcun bucket_size per una coda, il valore predefinito è 5.

Per il vostro caso significa che se 100 messaggi sono in coda, sono direttamente in fase eseguiti solo dieci e un altro 5 ogni minuto successivo. Non perderai alcun messaggio, ma si accoderanno se la dimensione e la frequenza del bucket sono troppo basse.

+0

+1 Incredibile! Inoltre, è strano sapere che la documentazione della coda delle attività 'java' non ha queste informazioni mentre la documentazione 'python' ce l'ha! Ho avuto l'impressione che la documentazione java e python fosse simile al contenuto. Siccome non ho trovato la cosa sotto java ho fatto un'ipotesi che non sarebbe stato neanche in python! Grazie per segnalarlo. – Gopi

+0

Aah .. l'ho trovato anche in java. Ma non è completo come Python. http://code.google.com/intl/it/appengine/docs/java/config/queue.html – Gopi

+0

Ecco un link aggiornato: https://developers.google.com/appengine/docs/ java/config/queue # Queue_Definitions – Lior