2010-09-18 15 views
21

silnik app Google task queues mieć konfigurację co (przykład)Co to jest "kubełkowy rozmiar" kolejki w silniku aplikacji Google?

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

Oto, co mówi 'wiadro-size' oznacza? Nie mogłem znaleźć obszernej dokumentacji na ten temat w dokumentacji silnika aplikacji Google.

Czy określenie tego jako 10 oznacza, że ​​jeśli 100 zadań zostanie umieszczonych w kolejce w jednej chwili, tylko 10 z nich zostanie umieszczonych w kolejce, a reszta zostanie zignorowana?

Odpowiedz

32

kubełkowy rozmiar jest doskonale opisany here:

Ogranicza burstiness przetwarzania kolejka'S, czyli wyższy rozmiaru bufora pozwala na większe skoki stopy wykonania kolejka ma. Rozważmy na przykład kolejkę o szybkości 5/si wielkości wiadra 10. Jeśli ta kolejka była nieaktywna przez pewien czas (pozwalając, aby jej "token bucket" wypełniła się), a 20 zadań zostanie nagle zakasowanych, to można natychmiast wykonać 10 zadań. Ale w następnej sekundzie, tylko 5 dodatkowych zadań będzie można wykonać, ponieważ pojemnik z tokenami został wyczerpany i uzupełnia się z określoną prędkością 5/s.

Jeśli nie bucket_size jest określony dla kolejki, domyślnie jest to 5.

Twoim przypadku oznacza to, że jeśli 100 wiadomości w kolejce, tylko dziesięć są bezpośrednio wykonywane i kolejne 5 każda następna minuta. Nie stracisz żadnych wiadomości, ale będą one ustawiać się w kolejce, jeśli twój rozmiar kubełka i stawka są zbyt niskie.

+0

+1 Niesamowite! Ponadto dziwne, że dokumentacja kolejki zadań "java" nie zawiera tych informacji, podczas gdy dokumentacja "python" ją zawiera! Miałem wrażenie, że dokumentacja w języku Java i Pythona byłaby podobna pod względem treści. Ponieważ nie znalazłem rzeczy pod java, założyłem, że nie będzie to również w pytonie! Dziękuję za wskazanie. – Gopi

+0

Aah .. znalazł go również w Javie. Ale nie jest tak kompleksowy jak Pythona. http://code.google.com/intl/en/appengine/docs/java/config/queue.html – Gopi

+0

Oto aktualny link: https://developers.google.com/appengine/docs/ java/config/queue # Queue_Definitions – Lior