我在rails应用程序上使用resque
gem来处理后台作业。我有用户触发后台工作,可能需要10分钟才能完成(他们正在处理大量数据)。在作业完成后提醒用户的最佳方法是什么?
我已经看到了关于使用resque-status
的答案here,这是唯一的解决方案吗?或者是否有其他方式通过正常的resque
提醒用户(我已经实施过)?</ p>
答案 0 :(得分:4)
如果您打算以异步方式通知用户,则有三个选项:
这几乎是我能想到的唯一事情。我个人会选择1和2的组合;在完成时向他们发送电子邮件,并在他们下次登录时通知他们(并在通知中提供链接)。
答案 1 :(得分:3)
您可以使用名为“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