使用 delayed_job axlsx_rails gem 生成大型 xlsx 文件
Generating large xlsx file with axlsx_rails gem using delayed_job
我有一个 rails 应用程序和一些巨大的 xlsx 文件要生成,虽然 axlsx_rails 在生成这些文件方面效果很好,但当行数超过 60000 时,需要很长时间等到下载 window 弹出。
有人建议我使用 delayed_job。作为初学者,我几乎不明白 delayed_job 如何以 "normal" 的方式工作,当你有一个方法来调用 .delay 时,但在这种情况下 gem 完成所有工作,那么我怎么能把它放在延迟的工作上呢?或者换句话说,我应该将 `.delay` 命名为什么?
我对 axlsx_rails 的整个实现是按照以下教程完成的:
https://www.sitepoint.com/generate-excel-spreadsheets-rails-axlsx-gem/
他们很可能打算使用 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
感兴趣的部分是 "Installing Redis More Properly",尽管您可以按照此处下载页面上的说明绕过很多手动工作:
在你 运行 make 之后,utils 文件夹有一个安装脚本,你可以 运行 它会为你完成快速入门指南中的所有设置,除了将可执行文件复制到你的 /usr/local/bin 目录。
我有一个 rails 应用程序和一些巨大的 xlsx 文件要生成,虽然 axlsx_rails 在生成这些文件方面效果很好,但当行数超过 60000 时,需要很长时间等到下载 window 弹出。
有人建议我使用 delayed_job。作为初学者,我几乎不明白 delayed_job 如何以 "normal" 的方式工作,当你有一个方法来调用 .delay 时,但在这种情况下 gem 完成所有工作,那么我怎么能把它放在延迟的工作上呢?或者换句话说,我应该将 `.delay` 命名为什么?
我对 axlsx_rails 的整个实现是按照以下教程完成的: https://www.sitepoint.com/generate-excel-spreadsheets-rails-axlsx-gem/
他们很可能打算使用 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
感兴趣的部分是 "Installing Redis More Properly",尽管您可以按照此处下载页面上的说明绕过很多手动工作:
在你 运行 make 之后,utils 文件夹有一个安装脚本,你可以 运行 它会为你完成快速入门指南中的所有设置,除了将可执行文件复制到你的 /usr/local/bin 目录。