Когда App Engine (Java) раскручивает новые экземпляры, как я могу гарантировать, что cron Memcache очереди задач совместно используется между ними? - PullRequest
1 голос
/ 18 января 2011

Это проблема, когда мое приложение испытывает случайные пики ограничения ЦП на сайте, на котором почти вся работа выполняется в результате задачи cron, которая часто запускается каждый час для вызова очереди задач, которая заполняет memcache.

Недавно сайт получил большой всплеск трафика, в результате чего было запущено несколько экземпляров.

Однако, к моему удивлению, мне пришлось снизить частоту выполнения задачи Memcache в те дни, хотя менее 1% использования ЦП было связано с всплеском трафика. (99% работы, выполняемой в этом приложении, выполняется (а) в очереди задач memcache и (б) в логике JavaScript / JSON на стороне клиента).

Что меня интересует, так это то, требуют ли дополнительные экземпляры, которые были запущены, для своих собственных очередей задач Memcache, и, возможно, именно поэтому я увидел гораздо более высокую загрузку ЦП, связанную с очередью задач, которая заполняет memcache в те дни - задача фактически выполнялась отдельно для каждого из экземпляров ?

Если это так, как я могу гарантировать, что очередь задач - и заполняемый ею кэш-память - распределяются между экземплярами - если это вообще возможно?

1 Ответ

1 голос
/ 19 января 2011

Очередь задач и memcache являются глобальными. Вероятно, вы ставили задачу в очередь каким-то образом, который зависел от количества экземпляров, поэтому вы запускали больше задач, чем следовало - невозможно сказать, не увидев свой код.

...