一尘不染

在Rails ActionCable中“无法找到带有标识符的订阅”的原因可能是什么?

redis

我正在使用Rails 5.0.0.rc1 + ActionCable + Redis构建Messenger应用程序。

我有一个频道ApiChannel,其中有很多动作。有一些“单播”操作->索要某些东西,取回一些东西,然后进行“广播”操作->做某事,将有效负载广播到某些连接的客户端。

我不时RuntimeError从这里得到异常:https
:
//github.com/rails/rails/blob/master/actioncable/lib/action_cable/connection/subscriptions.rb#L70Unable to find subscription with identifier (...)

这可能是什么原因?在什么情况下可以得到这种例外?我花了很多时间调查这个问题(并将继续这样做),任何提示将不胜感激!


阅读 234

收藏
2020-06-20

共1个答案

一尘不染

似乎与此问题有关:https :
//github.com/rails/rails/issues/25381

Rails答复订阅时已经创建了某种竞争条件,但实际上尚未完成。

作为临时解决方案,在建立订阅后添加了一个较小的超时已解决了该问题。

不过,还需要做更多的调查。

2020-06-20