2017-02-20 41 views
0

我有一個Rails應用程序和一些巨大的XLSX文件生成和,雖然axlsx_rails作品真的很好生成這些文件生成與axlsx_rails寶石大XLSX文件,當行數超過60000還有很長的時間等待直到彈出下載窗口。使用delayed_job的

我建議使用delayed_job的。作爲一個初學者,我很難理解delayed_job是如何以「正常」的方式工作的,當你有一個方法調用`.delay`時,但是在這種情況下,gem完成了所有的工作,所以我怎麼能把它放在延遲的工作上?換句話說,我應該怎樣稱之爲`.delay`?

我的整個實施axlsx_rails的做在下面的教程: https://www.sitepoint.com/generate-excel-spreadsheets-rails-axlsx-gem/

回答

0

很可能他們打算使用ActiveJob。如果傻冒使用Rails 5.x的,你可以通過把這個在你的application.rb中的配置文件使用異步隊列適配器

http://edgeguides.rubyonrails.org/active_job_basics.html

config.active_job.queue_adapter = :async 
您可以在這裏找到文檔

如果您使用Rails的4.x的,你需要使用一個工作後端執行異步任務,如sidekiq:

https://github.com/mperham/sidekiq/wiki/Active-Job

Sidekiq還需要安裝Redis的存儲作業:

https://github.com/mperham/sidekiq/wiki/Using-Redis

這裏的構建和配置Redis的指南:

https://redis.io/topics/quickstart

感興趣的部分是「安裝的Redis更恰當」,但您可以通過以下說明他們的下載頁面上這裏繞過了很多的手動工作:

https://redis.io/download

運行make之後,utils文件夾有一個安裝腳本,您可以直接運行它,除了將可執行文件複製到/ usr/local/bin目錄之外,它將執行快速入門指南中的所有設置。