我的懒惰机器人在一段时间后开始多次回答。
重新启动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/