Подтвердить что ты не робот

Push vs Pull Queues в Google App Engine

До сих пор никто (даже GAE docs) не смог дать мне действительно четкое описание того, какая разница между цепочкой push и pull.

Мое понимание заключается в том, что API очереди задач позволяет вам определять очереди задач, в которые может быть помещена работа. Так или иначе, это работает с функцией автомасштабирования GAE, поэтому вам не нужно явно управлять количеством рабочих потоков, потребляющих задания, от этих очередей: GAE просто делает это для вас.

Но нигде я не могу найти "King English" описание разницы между очередями push и pull. Что такое нажатие кнопки "push queue"? Что такое "вытягивание очереди"? Они оба настроены внутри queues.xml?

4b9b3361

Ответ 1

В очереди pull вы ставите задачи в очередь, и ваш код должен их вытащить, вы вытаскиваете их, лизируя задачи из очереди и удаляя задачи. если вы не удалите задания и срок аренды истек, система вернет задачи обратно в очередь.

Вы можете использовать pull queue (например) для объединения нескольких рабочих единиц, которые могут обрабатываться вместе. Другой пример: задача очередей, которая будет вытягиваться внешней машиной (например, EC2 или gCompute), чтобы обрабатывать задачу таким образом, что AppEngine не может.

В push queue вы ставите задачи в очередь, но AppEngine вычеркнет их и запустит их на обработчике, указанном в задаче. Вы можете контролировать скорость обработки задачи, как управлять сбоями выполнения задач, а AppEngine будет решать, сколько экземпляров (потоков) использовать для обработки.