У меня есть процесс Python, который выполняет массивацию данных на миллионах записей. В настоящее время я планировал запустить его в среде Flex.
Код следующий:
<code>from datetime import datetime, timedelta
import logging
from flask import Flask, request
import google.cloud.logging
import pandas as pd
import numpy as np
from pandas.io import gbq
from google.cloud import bigquery
from google.cloud.bigquery import schema
from google.api_core import page_iterator
#import google.cloud.bigquery.table
logging.basicConfig(level=logging.DEBUG)
app = Flask(__name__)
from mbarticle import *
@app.route('/pythonappmba')
def hello():
#Calling mb_cal() to calculate Table massaging
logging.debug('Program Started...Calling mb_cal() to basket details')
status = mb_cal()
logging.debug('Program Ended...')
logging.debug(status)
"""Return a friendly HTTP greeting."""
return status
@app.errorhandler(500)
def server_error(e):
logging.exception('An error occurred during a request.')
return """
An internal error occurred: <pre>{}
Смотрите журналы для полной трассировки стека.
"" ".format (e), 500
если __name__ == '__main__':
# Используется при локальном запуске. Gunicorn используется для запуска
# приложение в Google App Engine. Смотрите точку входа в app.yaml.
app.run (host = '127.0.0.1', port = 8080, debug = True)
# [END gae_flex_quickstart]
mb_cal () - это функция, которая работает с 10 миллионами записей, и процесс занимает не менее 15 минут для массирования данных и загрузки данных обратно в Bigquery, используя следующую функцию: (df - конечный кадр данных)
df.to_gbq('Dataset.Tablename',
'Project',
chunksize=1000000,
if_exists='replace'
)
При работе с полными записями я получаю сообщение об ошибке, как показано ниже:
[error] 38#38: *38669 upstream prematurely closed connection while reading response header from upstream
Но код работает, когда я ограничиваю записи некоторыми условиями, которые выполняются менее чем за 1 мин. Но мне нужно обработать полные данные, что занимает не менее 15 минут.
Существуют ли какие-либо ограничения по времени ожидания для python в app engine flex?