2016-09-03 5 views
0

У меня есть функция импорта в моем приложении rails, который импортирует CSV-файл и соответственно обновляет записи. По мере того как этот файл становится больше, запрос занимает больше времени и, в конечном итоге, истекает. Поэтому я решил реализовать delayed_job для обработки моих длительных запросов. Единственная проблема заключается в том, что при выполнении задания выводится сообщение об ошибке Errno::ENOENT: No such file or directory. Это связано с тем, что мое решение работает с файлом CSV в памяти.Как временно хранить файлы на heroku для замедленного импорта задания

Есть ли способ сохранить CSV-файл на моем сервере heroku (и удалить его после импорта)?

ответ

1

Файловые системы Heroku являются эфемерными, т. Е. Контент на них не сохраняется, и они не разделяются между динамиками.

Если ваше замедленное задание выполняется на другом дино (как и должно быть, если оно уже отсутствует), вы не можете получить доступ к csv, который существует на диске вашего веб-дино.

Одним из способов было бы создать действие, которое служит CSV. Затем вы можете использовать некоторую библиотеку HTTP для загрузки CSV до начала задания.

+0

Спасибо. Я придумал другое обходное решение, я храню CSV-файл в таблице. Задержка задания будет выполняться вместо таблицы CSV. – stoerebink

1

Вы не можете хранить файлы в файловой системе dyno и читать их с другого динозавра.

Вы можете сохранить временный файл во внешнем облачном хранилище, таком как AWS S3, и прочитать его обратно с вашего замедленного задания.

 Смежные вопросы

  • Нет связанных вопросов^_^