Rails创建新线程或后台进程

时间:2012-01-30 09:46:32

标签: ruby-on-rails ruby multithreading background-process

由于数据库事务繁重,我点击应用程序中的Export to Excel链接时出现超时错误问题。 我想将此功能更改为后台,以便用户能够在后台进程运行时继续前进。 我希望当用户点击Export to Excel链接后台/新线程进程运行时,会向用户发送一封电子邮件,其中包含下载文件的链接。 我想知道哪个是实现这个创建新线程或后台进程的最佳方法?

先谢谢

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

有三种类型的消息队列,

  1. 没有队列 - 将为后台任务触发新的线程/进程,例如:spawn
  2. 数据库驱动 - 相应的任务将存储在数据库的表中,并在完成时自动删除,例如:backgroundrb,延迟作业
  3. 消息队列 - 内存中存储的作业,例如:starling
  4. 我没有使用resque,但听说配置有点复杂。 除了在后台运行任务外,如果要定期运行一些重复性任务,可以使用backgroundrb。否则延迟工作将是正确的选择。