2017-02-20 63 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目录之外,它将执行快速入门指南中的所有设置。