首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在重新排队作业完成时提醒用户

如何在重新排队作业完成时提醒用户
EN

Stack Overflow用户
提问于 2012-08-02 22:54:14
回答 2查看 2K关注 0票数 1

我有一个ruby on rails应用程序,它使用resque gem来处理后台作业。我让用户触发后台任务,可能需要10分钟以上才能完成(他们正在处理大量数据)。在作业完成时提醒用户的最佳方式是什么?

我已经看到了关于使用resque-status的答案here,这是唯一的解决方案吗?或者,有没有其他方法可以通过普通的resque (我已经实现了)来提醒用户?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-02 23:41:34

如果您打算异步通知用户,您有三种选择:

  1. 在数据库中设置一个标志,然后在他们下次登录时更改您的UI。(例如在警报视图中弹出或在作业运行结束时向他们发送something.)
  2. Send电子邮件。
  3. 如果你使用的是像Faye或Juggernaut这样的发布订阅框架,就向用户推送一个工作已经完成的通知。如果他们已登录,应该会立即看到。

这几乎是我唯一能想到的事情。我个人使用1和2的组合;完成后发送电子邮件给他们,并在他们下次登录时通知他们(并在通知中提供一个链接)。

票数 4
EN

Stack Overflow用户

发布于 2012-10-04 14:12:56

你可以使用一个叫做"resque-status“的gem。

使用此gem,您可以轻松获取作业的状态:

代码语言:javascript
复制
status = Resque::Plugins::Status::Hash.get(job_id)

Resque::Plugins::Status::Hash对象返回:

代码语言:javascript
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11780191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档