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

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

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

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

保罗,最初你必须看看这个PubSub on Rails教程 !

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

提示:如果您正在使用heroku,那么您将拥有许多具有抽象复杂性的库。

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

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