我正在开发一个需要异步运行长而慢的任务的Rails 2.3.x应用程序。
延迟请求直到处理完成有点痛苦。我们很高兴发送一个“好的,我们已经收到了,我们正在努力” - 回复客户端的样式回复,然后在客户离开后立即处理工作。
所以我已经看到了一些方法(例如分叉或使用cron),但似乎任务排队系统可能是一个更好的主意。
似乎主要有三个:
Sparrow看起来特别有趣,因为它支持Memcached,但我不想在没有做出明智决定的情况下选择一个。有没有人对最佳实践有任何见解?我很想知道你对上述经历的看法,特别是这种方法或提到的图书馆的任何主要问题。也许还有一种更好的方法来做到这一点,我完全错过了?
就在那里:Rails 3.x现在不是一个选项,这需要适用于Rails 2.3.x.
谢谢!
答案 0 :(得分:1)
我推荐使用delayed_job,特别是this fork and branch。我自己在rails 2.3.5上使用它并且效果很好。
它有一个rails 3分支,当你想要升级时,它适用于多个后端,并且它有一个可选的漂亮语法:
Notifier.delay.deliver_signup @user
顺便说一句,只是分叉是一个错误,因为你会发现fork没有良好的数据库连接。