使用delayed_job使用axlsx_rails gem生成大型xlsx文件

时间:2017-02-20 20:33:48

标签: ruby-on-rails excel xlsx axlsx file-generation

我有一个rails应用程序和一些巨大的xlsx文件来生成,虽然axlsx_rails在生成这些文件时效果很好,但当行数超过60000时,很长时间都会等到下载窗口弹出。

我被建议使用delayed_job。作为初学者,我几乎不了解delayed_job在" normal"当你有一个方法来调用`.delay`时,但是在这种情况下,gem会完成所有的工作,那么我怎么能把它放在延迟的工作上呢?换句话说,我应该把`.delay`称为什么?

我完成了axlsx_rails的整个实现,如下面的教程所示: https://www.sitepoint.com/generate-excel-spreadsheets-rails-axlsx-gem/

1 个答案:

答案 0 :(得分:0)

他们可能打算使用ActiveJob。你可以在这里找到它的文档:

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

如果你使用Rails 5.x,可以将它放在application.rb配置文件中使用异步队列适配器:

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目录外,它将为您执行快速入门指南中的所有设置。 / p>

相关问题