Pusher在后台工作超过我的应用程序 - 缺少JS通知

时间:2014-04-23 03:36:24

标签: ruby-on-rails ruby sidekiq pusher

我正在使用Sidekiq将excel文件的导入(通常很大,通常很小)移到后台,并在使用Pusher完成导入时提醒用户。

首先,在“同步”流程(这里是Rails应用程序)中,它将启动excel导入,然后它将重定向到仪表板页面,该页面将在导入完成时接收来自Pusher的通知。

问题是Sidekiq-Pusher流程有时会比重定向到仪表板页面更快。我的JavaScript订阅者不会及时初始化以接收从后台进程中发布的消息。所以客户什么都没得到。

Pusher是否提供延迟发布消息的方法,直到有订阅者?或者Pusher是否提供了一种“储存”消息的方法,直到用户栩栩如生地消费它们?或者也许这里有一个我没想过的更简单的解决方案?

Fyi,我不希望后台作业休眠几秒钟以确保客户端已准备就绪,我不想使用Pusher触发刷新(即在DB中保存某些内容,然后刷新显示它。)

如果需要,我很乐意提供代码示例。

编辑:

如果其他东西可以解决我的问题,我当然愿意使用除了Pusher之外的其他东西。

1 个答案:

答案 0 :(得分:0)

从当前时间开始1或2秒后调用该工作程序,以便调用它并在重定向到目标网页后显示该消息。

TestProcess.perform_at(2.seconds.from_now,parameters)

它将按预期工作。希望它有所帮助:)