Многопроцессорный пул с функцией FB prophet не может работать на Gunicorn

#ubuntu #python-multiprocessing #gunicorn #facebook-prophet

Вопрос:

Я пытаюсь развернуть приложение flask на Gunicorn в виртуальной машине. Однако я продолжаю получать эту ошибку, когда отправляю запрос через почтальона, чтобы опробовать приложение flask, BrokenPipeError:[Errno 32] Сломанная труба. (Ссылка на ошибку здесь)

После попытки повторить ошибку в меньшем масштабе выясняется, что причиной этой ошибки является выполнение класса пула для функции prophet.

Вещи, которые действительно работают:

  • Занятия по бегу в бассейне на Гуникорне
  • Запуск функции пророка на Gunicorn
  • Запуск приложения flask (пул пророк) на локальном сервере

Пример кода:

 def simple_prophet_function (unused_arg):

# create a simple dataframe 
first_date_on_list = datetime.datetime(2018,7,1).date()
first_sale = 30 

create_date_list = [(first_date_on_list    datetime.timedelta(days=x)).isoformat() for x in 
range(60)]
create_random_sales_list = [first_sale   x for x in range(60)] 

df_prophet = pd.DataFrame()
df_prophet['ds'] =  create_date_list 
df_prophet['y'] = create_random_sales_list 

# create a forecast 

forecast_model = Prophet()
forecast_model.fit(df_prophet) 
future = forecast_model.make_future_dataframe(periods=5)
forecast_results = forecast_model.predict(future )

return unused_arg


# function that will be used in flask app

def execute(random_data): 

# create a simple list 
new_list = [1,2,3] 



if __name__ = "put_name_of_script": 

with Pool() as pool: 

M = pool.map(simple_prophet_function , new_list)
print(M)
 

(Извините, отступ не точен, по какой-то причине моя кнопка вкладки здесь не работает)

Мои спецификации виртуальной машины таковы:

  • ОС: Linux Ubuntu
  • Базовая память: 4096 МБ
  • Процессоры: 2
  • Жесткий диск: 30 ГБ

https://i.stack.imgur.com/lssRo.png
https://i.stack.imgur.com/m30DZ.png