2010-12-08 3 views
1

В проекте, сильно использующем Задачи, я хотел бы записать параллелизм «изнутри».Google App Engine: как однозначно идентифицировать экземпляры JVMs/измерять параллелизм?

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

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

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

рассматривает Didier

ответ

3

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

+0

Привет Ник, спасибо за эту идею, что я буду стараться. Дополнительный вопрос: GAE дублирует элементы из 1-го JVM, когда он запускает второй и т. Д. Не будет ли реплицирован этот статический uuid, когда класс перезагружается/дублируется на новой машине? спасибо didier – 2010-12-09 04:28:57

1

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

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

* in the Memcache 
* as a static field (in JVM memory) 
* as a ThreadLocal 
Смежные вопросы