当前位置: 首页 > 面试题库 >

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

怀德馨
2023-03-14
问题内容

我正在使用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 (...)

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


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 我遇到了运行时警告 由我的这一行代码生成: 两个和是numpy的阵列 该警告可能是什么原因? 问题答案: 这很可能是由于所涉及的输入中的某处而发生的。它的一个示例如下所示- 对于所有涉及的比较,它将输出。让我们确认一下以进行比较。这是一个示例- 请注意输出中的第三列,该列与包含第三元素的比较相对应,并得出所有值。

  • 这也没有空格啊,为什么会高出一些? font-size: 0; 这样可以解决,但空格都没有这个属性作用到哪里去了?

  • 问题内容: 我在雄猫服务器(+ liferay)上收到此异常 我的课是这样的: 我在行上收到此异常, 当队列已满但大小为2 ^ 31时,可能会发生此错误,并且我确定没有那么多命令在等待。 一开始一切都稳定,但在我重新部署战争后,一切开始发生。此类不是战争的一部分,而是放在tomcat / lib中的jar中。 您是否知道为什么会发生这种情况以及如何解决? 问题答案: 从ThreadPoolExec

  • 当然在文件结束或输入错误发生时返回,但这是否意味着没有更多的数据可用? 使用

  • 问题内容: 我怀疑异常可能会使TimerTask停止运行,在这种情况下,我很可能需要第二个timetask来监视第一个仍在运行? 更新资料 感谢您的回答。我继承了此代码,因此有点无知… 我刚刚看到,如果我在工作中抛出未捕获的异常,TimerThread将永远停止运行。 的运行方法表明,如果引发异常,则计划的线程将永远不会再次运行。 stacktrace的结尾将是: 因此,临时解决方案是抓住一切…长

  • 在ngOnDestory中,我取消了两个订阅,但仍然得到前面的错误。 现在我几乎可以肯定问题出在这行:即使我在注销之前取消了proposalSubscription和chatSubscription的订阅,但仍然会出现错误。有没有解决这个问题的方法?而且,我对RXJ和操作符没有太多的经验。有没有操作符可以用来避免这种嵌套订阅? 提前道谢。