Находятся применимы приложения для Google App Engine на других серверах?

Я не удержался, чтобы написать пакетный скрипт для выполнения твоей задачи. Данный скрипт называется reshape.bat, предоставьте входной текстовый файл в качестве аргумента командной строки, например:

reshape.bat "algtest_extract.txt"

Чтобы сохранить выходные данные в другом файле, скажем, algtest_reshaped.txt, сделайте следующее: [116 ]

reshape.bat "algtest_extract.txt" > "algtest_reshaped.txt"

Вот код (см. Все пояснительные замечания):

@echo off
setlocal EnableExtensions DisableDelayedExpansion

rem // Define constants here:
set "_FILE=%~1" & rem // (file to process; `%~1` means first argument)
set "_COL=3"    & rem // (number of columns in the output data)
set "_SEP=,"    & rem // (separator character for input and output data)
set "_PAD="     & rem // (if defined, fill up last row with empty cells)

rem // Read from file:
< "%_FILE%" call :PROCESS

endlocal
exit /B


:PROCESS
    rem // Initialise variables:
    set "REST=" & rem // (remaining text string after the first separator)
    set "LINE=" & rem // (row collector for line/row to output)
    set "IDX=0" & rem // (column counter for output data)
    setlocal EnableDelayedExpansion
:READ
    rem // Read some text, 1023 characters/bytes at most:
    set "STR=" & set /P STR=""
    rem // Terminate loop if no more data are available:
    if not defined STR goto :END
    rem // Precede with potential remainder from previous loop:
    set "STR=!REST!!STR!"
:PARSE
    rem // Extract everything behind the first separator:
    if defined STR set "REST=!STR:*%_SEP%=!"
    rem // No separator had been found, so read more text:
    if "!REST!"=="!STR!" goto :READ
    rem // Extract part in front of first separator:
    for /F "delims=%_SEP%" %%I in ("ITEM=!STR!") do set "%%I"
    rem // Increment column counter:
    set /A "IDX+=1" & if !IDX! lss %_COL% (
        rem // Output line/row not yet complete, so go on assembling:
        set "LINE=!LINE!%_SEP%!ITEM!"
    ) else (
        rem // Output line/row complete, hence return it:
        echo(!LINE:*%_SEP%=!%_SEP%!ITEM!
        rem // Reset row collector and column counter:
        set "LINE=" & set /A "IDX=0"
    )
    rem // Keep on parsing using the remainder:
    set "STR=!REST!" & goto :PARSE
:END
    rem // Return potential remaining data:
    if defined _PAD (set /A "IDX=_COL-IDX-1") else (set /A "IDX=0")
    set "LINE=!LINE!%_SEP%!REST!"
    for /L %%I in (1,1,%IDX%) do set "LINE=!LINE!%_SEP%"
    if defined LINE echo(!LINE:*%_SEP%=!
    endlocal
15
задан stesch 24 January 2009 в 23:29
поделиться

6 ответов

Можно использовать gae2django для преобразования приложений AppEngine в приложение Django.

Как упомянуто в этой статье http://code.google.com/appengine/articles/pure_django.html

gae2django http://code.google.com/p/django-gae2django/

3
ответ дан 1 December 2019 в 02:55
поделиться

Как хороший консультант, я сказал бы, что ответ, "зависит".

В первую очередь, можно всегда выполнять проект GAE в SDK. Таким образом до той степени Вы не связываетесь. Кроме того, это зависит от того, что другие API Вы используете. Библиотека веб-приложения очень похожа на некоторых других, но я не думаю, что это доступно как автономное; однако, GAE поддерживает Django как веб-платформу также, и это, конечно, доступно одинокий.

Кодом является просто Python. Но некоторые API, как данные API, действительно предназначены для взаимодействия с облаком Google; Вы не можете быть уверены, что можно переместиться, произвольная программа GAE на другую платформу без переделывают.

2
ответ дан 1 December 2019 в 02:55
поделиться

У меня нет большого практического опыта GAE, но я читал эту статью недавно, которая затрагивает Ваш вопрос:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/

1
ответ дан 1 December 2019 в 02:55
поделиться

Если Вы не используете собственную платформу WebApp Google, но полагаетесь на большее количество стандартизованных инструментов (я не говорю, что Django здесь), существует только немного вещей изолировать от логики базового приложения и сделать сменным/выгружаемым:

  • устройство хранения данных, это, кажется, самая раздражающая часть, но выполнимый, если Вы не используете GQL слишком много (хранилище данных API напоминает достаточно другое доступное ORMs для Python для попытки);
  • аутентификация, кажется, легкая часть, но требует записи полный бэкенд;
  • кэш в оперативной памяти, кэш-память, API несколько отличается от Memcached (различия являются небольшими, таким образом, это должно быть просто как операции обеих систем, идентичен);
  • запуск приложения, необходимо было бы записать собственное средство запуска WSGI (довольно легкий с Werkzeug).

По-моему - стоящий попытки.

5
ответ дан 1 December 2019 в 02:55
поделиться

При использовании Django 0.96, можно переместить код в другой хост после некоторой незначительной работы. Необходимо будет изменить порт Модели от хранилища данных до другой базы данных. Необходимо будет прекратить использовать Google, обеспеченный Пользовательский класс и возможно другой Google определенные API.

Я портировал приложения Django к GAE без большой проблемы.

1
ответ дан 1 December 2019 в 02:55
поделиться

Я разрабатываю движок приложения (java) уже пару месяцев.
Теоретически, если вы придерживаетесь таких стандартов, как JPA или JDO для доступа к данным
. и не используйте расширенные возможности, такие как очереди задач, у вас не должно быть много
. Проблема переноса приложения в другую среду.

Сказав это, я часто использую низкоуровневый google apis для доступа к хранилищу данных, чтобы избежать кошмарных проблем с производительностью. Побочные эффекты этой проблемы могут быть до некоторой степени уменьшены, если ваше приложение имеет модульный уровень доступа к данным

. С другой стороны, если у меня есть приложение, работающее без сбоев в движке приложения, я не могу придумать ни одной причины, чтобы переместить его куда-либо еще.
0
ответ дан 1 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: