2013-08-12 2 views
1

Я пытаюсь загрузить запрос левого ввода с 110 столбцами и 60 000 строк в CSV. Я использую GAE с python, и мне нужно, чтобы загрузка выполнялась, когда пользователь нажимал одну кнопку на моем портале, но делал это невозможным, потому что всегда я вижу DeadLineError при выполнении моего кода.Могу ли я загрузить запрос как csv?

Я пытаюсь использовать:

rpc = urlfetch.create_rpc(deadline=10, callback=None) 
    urlfetch.set_default_fetch_deadline(10) 
    urlfetch.make_fetch_call(rpc, "url",method="POST") 

Но это не работает.

Пожалуйста, может кто-нибудь дать мне разум? Обязательно, чем использовать GAE с python. Если вам нужна дополнительная информация, я могу это дать.

+0

Мне было бы любопытно, если вы можете тянуть большое количество объектов, как, что из GAE в одном запросе, не задев какой-то предел. 60000 строк x 110 cols составляет около 7 миллионов элементов данных, и если каждый из них составляет 10 байтов, то это не менее 70 МБ. – Paul

+0

[Страница котировок GAE] (https://developers.google.com/appengine/docs/quotas#Safety_Quotas_and_Billable_Quotas) говорит, что вы получаете 56 МБ/мин бесплатно. Не проблема в оплате. Я думаю, что когда-то было также ограничение в 30 секунд на запрос, который, как я полагаю, достаточно времени для загрузки по широкополосной сети. – Paul

+0

Было бы интересно узнать, есть ли какой-либо способ сделать это бесплатно или, по крайней мере, убедиться, что это может быть сделано путем оплаты и оплаты, объясняя, чтобы гарантировать эту функциональность –

ответ

0

Чтобы преодолеть DeadlineError, нажмите кнопку «ОК», чтобы создать файл task queue для создания CSV-файла и сохранить его в Blobstore. После создания файла отобразите Blobserve URL, используя Channel API на своей странице. Когда пользователь нажимает URL-адрес загрузки, используйте blob.

Дополнительная информация:

Serving a Blob, Channel API