ruby on rails-后台工作中的Pusher速度超过了我的应用程序-缺少JS通知



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

首先,在"同步"流(此处为Rails应用程序)中,它将启动excel导入,然后重定向到一个面板页面,当导入完成时,该页面将接收Pusher的通知。

问题是Sidekiq Pusher流有时比重定向到仪表板页面更快。我的JavaScript订阅服务器将无法及时初始化以接收后台进程中发布的消息。所以客户一无所获。

Pusher是否提供了一种延迟发布消息直到有订阅者的方法?或者Pusher提供了一种"储存"消息的方式,直到用户活跃起来消费它们?或者这里有一个我没有想到的更简单的解决方案?

Fyi,我不希望后台作业休眠几秒钟以确保客户端准备好,我也不想使用Pusher来触发刷新(即在DB中保存一些东西,然后刷新以显示它)。

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

编辑:

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

从当前时间起1或2秒后调用工作者,以便在重定向到登录页后调用它并显示消息。

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

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

最新更新