Проект подходит для Google App Engine? - PullRequest
2 голосов
/ 26 марта 2011

В настоящее время я занимаюсь разработкой небольшого хобби-проекта (с открытым исходным кодом https://github.com/grav/mailbum)), который довольно просто берет изображения из учетной записи Gmail и помещает их в альбомы в Picasa Web.

Поскольку он (в настоящее время) имеет дело только с данными, размещенными в Google, я думал о том, чтобы разместить их в Google App Engine, но я не уверен, хорошо ли они подходят для GAE:

  • Максимальное время выполнения будет проблемой? В настоящее время это 10 минут согласно http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html,, но я думаю, что задачи (то есть обработка одной почты) будут легко выполняться параллельно. Я также предполагаю, что работа с данными, размещенными в Google, будет достаточно эффективной в GAE?

  • Будет ли препятствием тот факт, что он написан на языке Clojure? Я немного исследовал, как заставить Clojure работать на GAE, но я никогда не пробовал. Любые пин-указатели?

Спасибо за любые советы и мысли по проекту!

Ответы [ 2 ]

4 голосов
/ 26 марта 2011

Похоже, ваше приложение выполнимо на GAE. Мои вопросы могут быть:

  1. Сохраняет ли ваш код изображения, которые он обрабатывает, во временных файлах? Если это так, его нужно будет изменить, чтобы все в памяти выполнялось, поскольку приложения GAE находятся в изолированной программной среде и им не разрешено выполнять запись в файловую систему (если вам требуется временное постоянное хранилище, вы можете что-то придумать, куда вы записываете свои данные файла поле BLOB в хранилище данных GAE).

  2. Как вы загружаете изображения в Picasa Web? Если они предоставляют простой REST / HTTP API, то все хорошо. Если вам нужно что-то более сложное (например, необработанный сокет TCP), то это не сработает.

  3. Ограничение времени выполнения 10 минут относится только к фоновым задачам. При фактическом обслуживании веб-запросов ограничение по времени составляет 30 секунд. Поэтому, если вы предоставляете веб-интерфейс для своего приложения, вам нужно структурировать вещи так, чтобы интерфейс просто планировал задания, которые выполнялись в фоновом режиме (то есть вы не можете запустить задание напрямую как часть обслуживания веб-запроса) .

Если ни один из этих звуков не напоминает вам стоп-шоу, то я думаю, что ваше приложение должно нормально работать на GAE.

Правда, не могу сказать, сработает ли Clojure. Однако в прошлом я потратил некоторое время на то, чтобы заставить некоторые сторонние библиотеки работать на App-Engine. В общем, все, что мне нужно было сделать, это удалить / изменить / отключить все части библиотеки, которые обращались к функциям, которые запрещены песочницей (например, мне пришлось отключить автоматическое кэширование на диск, чтобы заставить commons-fileupload работать на GAE). Не уверен, применимо ли то же самое к Clojure, или даже к тому, какой будет область действия для такой задачи.

0 голосов
/ 31 марта 2011

Я уже давно занимаюсь Clojure и App Engine, и я должен порекомендовать appengine-magic .Он абстрагирует большинство вещей Java и очень прост в использовании.Как плюс проект кажется очень активным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...