Google App Engine: как однозначно идентифицировать экземпляры JVM / измерить параллелизм? - PullRequest
1 голос
/ 08 декабря 2010

В проекте, интенсивно использующем Задачи, я хотел бы записать параллелизм "изнутри".

В консоли я вижу, что GAE автоматически запускает новый случаи JVM (до 10-12), когда сотни / тысячи задач помещён. Затем они работают нормально.

Но я бы хотел записать, какая задача выполнялась на каком экземпляре для прослеживаемость и измерение параллельности.

Есть ли какое-либо свойство GAE или System, которое я мог бы получить уникальным определить JVM, на которой выполняется задание?

С уважением Didier

Ответы [ 2 ]

3 голосов
/ 09 декабря 2010

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

1 голос
/ 13 декабря 2010

Это приложение может помочь вам начать работу - автор хотел поэкспериментировать с отслеживанием новых экземпляров и включает исходный код.

AppEngine автоматически запускает и останавливает JVM и потоки.Это приложение предназначено для сбора некоторых данных о том, как и когда это произойдет.Он создает UUID и счетчики доступа к страницам и сохраняет их в различных областях:

* in the Memcache
* as a static field (in JVM memory)
* as a ThreadLocal
...