在网站上提出请求后如何发送电报消息?

时间:2020-07-16 08:49:15

标签: python flask telegram

我的服务器上有一个Flask应用程序,另一个服务器上有该数据库的Telegram机器人,该服务器具有公用数据库。我想在网站上的某些请求之后(用户发出请求并且在此之前,他们将Telegram帐户与网站帐户相关联)在Telegram中发送消息。什么是正确的方法?我一点都不知道。

1 个答案:

答案 0 :(得分:0)

如上所述,您正在两台服务器之间使用一个公共数据库。通常,消息队列通常使用AMQP协议用于此类事务。看一下RabbitMQ之类的东西,这是它的常见实现。如果您具有Flask服务器将请求发送请求以将消息发送到队列的设置,而Telegram机器人读取队列以检查是否有新消息,则服务器之间可以轻松进行通信。我推荐这种方法。


另一种可能性是使用数据库作为队列自己编写类似的内容。将消息请求写入表,每行具有一个“已处理”布尔值,Telegram机器人在发送消息后将其设置为true。但是,此方法有一些缺点:

  • 由于软删除,对数据库的许多更新和删除会增加数据库的空间使用量;
  • 如果要并发,则需要一种机制来防止服务器获取和处理同一行-AMQP会为您这样做;
  • AMQP可以通过死信交换(DLX)处理失败的请求。如果Telegram的服务器出现故障或无法访问,该怎么办,您是否会一遍又一遍地重试同一件事,或将其放在一旁以供以后使用?