过一会儿使用slack-ruby-bot gem从slack机器人获得多个答案

问题描述 投票:1回答:1

我的懈怠机器人过一段时间后开始回答多次。重新启动松弛的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

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

ruby docker rubygems slack slack-api
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.