我有一个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/
答案 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”,尽管您可以按照其下载页面上的说明绕过大量的手动工作:
运行make之后,utils文件夹中有一个可以运行的安装脚本,除了将可执行文件复制到/ usr / local / bin目录外,它将为您执行快速入门指南中的所有设置。 / p>