Django - Команда управления - Pandas read_csv - Работает локальный хост - Heroku - PullRequest
0 голосов
/ 17 июня 2020

Кажется, в этом месяце я сталкивался с уникальными ситуациями.

Мне нужно прочитать файл из Интернета и обновить базу данных .

Я использовал два подхода:

Подход 1.

Выгрузка значений из самого приложения - это может занять много времени, и я могу сработать тайм-аут рабочего - однако я сохранил этот подход - поскольку сейчас это занимает 27-29 секунд. Таймаут Heroku составляет 30 секунд.

Подход 2.

Загрузите значения из Django Command Management. Я запланировал задание через Heroku.

Я использовал файл pandas - pd.read_csv для чтения файла из Интернета в обоих подходах.

Сценарий 1:

Если я использую подход 1 ,

Localhost : работает нормально

Heroku : отлично работает

Сценарий 2:

Если я использую подход 2 ,

Localhost : Он отлично работает

Heroku : ошибка HTTP 503 и не удается прочитать файл

Что может быть решением для этого?

PS - Я планирую размещать запросы и добавлять заголовок браузера и обновлять эту ветку .

1 Ответ

0 голосов
/ 17 июня 2020

Нашел ответ на этот вопрос, я подтвердю это завтра, когда будет запущено задание Heroku.

Отредактировано: Задание работало отлично, все данные были обновлены. Вы получили поддельный это:

Отредактировано - 2-е изменение, оно не удалось на следующий день. Я собираюсь создать еще несколько поддельных заголовков и опубликую обновление.

    from zipfile import BadZipFile, ZipFile
    import datetime
    import pandas as pd
    import logging
    import requests,zipfile
    import io

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
    r = requests.get(url,headers=headers)

    logger.info("Status code = ",r.status_code)

    if r.status_code == 200:
        logger.info(" Request ran successfully ")
        file = zipfile.ZipFile(io.BytesIO(r.content))
        myfile = file.open(filename)
        stock_prices = pd.read_csv(myfile)
        print(stock_prices)
...