监控完成Sidekiq工作的最佳方法是什么?

时间:2013-05-04 04:27:46

标签: ruby-on-rails ruby sidekiq

在用户首次登录后,我使用Sidekiq工作人员完成对Facebook的一些请求。通常,任务大约需要20秒左右。

我想在同步完成后立即使用ajax请求将一些信息加载到页面上,但我不确定使用Javascript检查作业完成的最佳方法。

一种可能性是配置Sidekiq工作程序在其余作业完成后设置cookie。然后我可以使用setTimeout函数在调用load函数之前继续检查cookie。但我不确定这是否是这样做的最佳方式。我可以使用Redis吗?

2 个答案:

答案 0 :(得分:1)

保罗,最初你要看看这个PubSub on Rails tutorial

这将是您在后端发生/完成异步事件时通知用户的更好解决方案。

提示:如果您正在使用heroku,那么您将拥有大量具有这种复杂性的库。

答案 1 :(得分:1)

保罗,我会把你的担忧分开。我假设sidekiq工作者使用一些rails activerecord模型向facebook发送一些信息。当facebook请求成功完成时,我会在该模型上设置一个标志为true。

然后你可以在js中使用setTimeout来轮询数据库中的更改...或者使用网络套接字可以查看更快,更自动的响应。我过去曾使用过名为Pusher的库。与rails集成非常容易,并且可以实现非常快速的UI。