2014-01-27 3 views
0

У меня есть приложение rails 3, которое использует sidekiq для фоновых заданий. Я использую Paperclip для загрузки файлов.Rails + Sidekiq: Обработка загруженных CSV в фоновом режиме без сохранения

Моя текущее действие в мой контроллер не работает:

def tax_rates 
    if params[:tax_rates] 
    TaxRatesWorker.perform_async(params[:tax_rates].tempfile) 
    ... 

Я думаю, это потому, что временный файл будет удален, когда работа идет в фоновом режиме (Он работает, когда я запускаю его без использования sidekiq). Как бы вы порекомендовали мне это? Файл представляет собой большой файл CSV. Должен ли я его сохранить?

ответ

1

как в Sidekiqs документации:

Это означает, что аргументы вашего работника должны быть простыми JSON типов данных (числа, строки, логический, массив, хэш). Сложные объекты Ruby (например, экземпляры Date, Time, ActiveRecord) не будут правильно сериализованы.

это означает, что вы могли бы сохраняться файл и пройти путь в виде строки в sidekiq

+0

Файл большой, хотя. Есть ли другой способ, кроме сохранения файла локально? – Edmund

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