ruby - 一段时间后,使用slack-ruby-bot gem从Slack机器人获取多个答案

标签 ruby docker rubygems slack slack-api

我的懒惰机器人在一段时间后开始多次回答。
重新启动Slack bot容器可以暂时解决此问题。

我们使用 slack-ruby-bot gem将一个slack bot与我们的ruby应用程序集成在一起。

有关如何实现命令的简单示例,请参见代码。在该命令中,只要用户写了“any_phrase”,机器人就会以该“any_phrase”确切的答案。
这可以正常工作,但过一会儿,机器人会开始回答多次。

这是通过 docker容器实现的,所以我添加了日志以验证我们从同一台机器获得响应,而不是从另一个容器侦听。它来自同一IP。
另外,重新启动容器后,它可以解决问题,这也表明它来自同一台计算机。

class Say < SlackRubyBot::Commands::Base
  command 'say' do |client, data, match|
    client.say(channel: data.channel,text: match['expression'])
  end
end

该漫游器始终只能回答一次。还有其他命令会影响应用程序的数据,我们不希望它多次运行。

最佳答案

看起来这可能是slack-ruby-bot + Celluloid的已确认错误,请参阅https://github.com/slack-ruby/slack-ruby-bot/issues/236。有一种切换到异步Websocket的解决方法。

关于ruby - 一段时间后,使用slack-ruby-bot gem从Slack机器人获取多个答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822897/

相关文章:

ruby - Ocra 和脚本在 Rubygems gemspec 中标记为可执行文件

ruby-on-rails - 'gem install [gem 名称] --pre' 没有更新我的系统 gems

ruby-on-rails - 失踪的 rails gem

ruby - 不要附加但覆盖记录器的日志文件

ruby - 如何使用正则表达式匹配字符或不匹配

python - Airflow GKEPodOperator xcom_push 返回 None

java - 当我构建Docker镜像时,Gradle测试由于UnsupportedClassVersionError而失败-在本地运行良好

ruby - 使用文件夹中的模块扩展模型

Ruby:排序哈希数组,即使键可能不存在

Docker - 容器间脚本执行