2012-06-15 3 views
0

У меня есть файл размером ~ 2 МБ, который должен быть у моего сервера приложений Google AppAngine (не служить) как часть вычисления для запроса на обслуживание.Статический файл Google AppEngine для вычислений сервера

То есть клиент делает конкретный запрос, мой сервер GAE должен сначала получить данные из этого файла размером ~ 2 МБ, выполнить некоторые вычисления с использованием этих данных, а затем передать небольшой ответ клиенту.

Где лучше всего хранить эти данные, чтобы их можно было быстро считывать и использовать сервером при вычислении?

ответ

1

Если следующие предположения справедливы

  • файл не будет требовать обновления за пределами обновлений Appengine кода
  • , что файл только для чтения

Затем развернуть файл с вашим кода и прочитать файл в памяти во время запуска (в идеале, используя запросы на разогрев) и просто работать с ним из памяти. Если вам нужен код для семантики для доступа к данным (чтение, поиск и т. Д.), Прочитайте содержимое файла и заверните его в StringIO.

Вам нужно будет присвоить значение, считанное из файла, переменной уровня модуля, таким образом, всякий раз, когда вы получаете новый запрос, вы можете просто получить содержимое файлов, импортировав модуль и ссылаясь на имя. то есть. mymodule.filecontents

+0

Спасибо Тим. Не могли бы вы прояснить, как мне развернуть файл с моим кодом и как его прочитать в памяти во время запуска? И извините, что такое запрос на разминку? Благодарю. – aez

+0

ОК, вы понимаете, как приложения развертываются для приложения. Если так, файл просто включается в фактический код. (Вы не сказали, если вы используете python или java.Я работаю только с python, поэтому все, что я говорю, будет основано на python. Просто подумайте о файле как о другом фрагменте кода. Вы можете использовать стандартный open («путь к file "). read() вызовет тип чтения, чтобы прочитать его в памяти. –

+0

И вы можете просмотреть https://developers.google.com/appengine/docs/adminconsole/instances#Warmup_Requests для получения подробной информации о запросах на разминку. сгенерирует запрос/_ah/warmup для запуска экземпляра перед отправкой на него трафика. Используя запрос на разминку для чтения файла в память, вы можете просто прочитать его один раз при запуске и не брать затраты на чтение по каждому запросу –

Смежные вопросы