我有一个红宝石的rails应用程序使用resque
gem来处理后台作业。我有用户触发可能需要10分钟才能完成的后台作业(他们正在处理大量数据)。工作完成后提醒用户的最佳方式是什么?如何提醒用户当一个resque作业完成
我见过使用resque-status
的答案here,是唯一的解决方案吗?还是有另一种方式通过正常的resque
(我已经实现)提醒用户?
我有一个红宝石的rails应用程序使用resque
gem来处理后台作业。我有用户触发可能需要10分钟才能完成的后台作业(他们正在处理大量数据)。工作完成后提醒用户的最佳方式是什么?如何提醒用户当一个resque作业完成
我见过使用resque-status
的答案here,是唯一的解决方案吗?还是有另一种方式通过正常的resque
(我已经实现)提醒用户?
如果您打算以异步方式通知用户,你有三种选择:
这几乎是我能想到的唯一的东西。我会亲自去1和2的组合;完成后向他们发送电子邮件,并在下次登录时通知他们(并在通知中提供链接)。
您可以使用名为“resque-status”的gem。
使用这个宝石,你可以很容易地找到工作的状态:
status = Resque::Plugins::Status::Hash.get(job_id)
这Resque::Plugins::Status::Hash
对象返回:
status.pct_complete #=> 0
status.status #=> 'queued'
status.queued? #=> true
status.working? #=> false
status.time #=> Time object
status.message #=> "Created at ..."
有关详细信息,并得到这颗宝石,请访问:https://github.com/quirkey/resque-status
我正想看看向用户发送电子邮件以及道路,所以非常感谢!我不确定我怎么没有想到数据库中的标志,这是非常合理的。 – 2012-08-02 15:46:13
3肯定是最优雅的解决方案,现在正在调查 – Orlando 2012-08-22 21:43:42