如何与始终 运行 python 脚本通信
How to communicate to an always running python script
我正在开发一个 python 电报机器人,我有一个脚本总是 运行(用于从电报接收新命令),我希望机器人在用户执行时发送消息网站中的动作。
示例:用户启动机器人,机器人发送 link 以在网站上执行操作(例如登录用户帐户并将电报 ID 与用户 ID 连接),然后在电报上发送确认消息一切都好。
我的问题是如何告诉 python 脚本浏览器中的操作已完成?现在我一直在查询数据库,但我的解决方案非常愚蠢,因为如果用户不执行任何操作,查询就会永远进行下去。
有什么正确的建议吗?
谢谢 <3
我在这里看到两个可行的解决方案:
直接从网站发送消息。虽然一次只允许一个进程 获取 更新,但您可以根据需要从任意多台服务器发出其他请求。根据您网站的工作方式,您可以向 Bot API 发出纯 HTTP 请求,或使用 API 包装器(如 python-telegram-bot
)或其他语言的包装器来发出请求。例如如果您是 运行 基于 php 的网站,则可以使用 php API 包装器。
如果出于某种原因 1. 不适合您,您可以尝试通知您的 运行 进程有关用户登录的信息。 PTB 常见问题解答 an entry 应该可以帮助您入门。如果您的网站和机器人 运行 在同一台服务器上,则可以使 update_queue
直接可用于网站进程。如果没有,您可以尝试为您的 bot 设置一个 webhook 并 post 对 webhook 进行更新,然后将其排入 update_queue
方法 1. 的缺点是您没有将所有机器人逻辑放在一个地方,但它应该比方法 2 更容易实现。
免责声明:我目前是 python-telegram-bot
的维护者
我正在开发一个 python 电报机器人,我有一个脚本总是 运行(用于从电报接收新命令),我希望机器人在用户执行时发送消息网站中的动作。 示例:用户启动机器人,机器人发送 link 以在网站上执行操作(例如登录用户帐户并将电报 ID 与用户 ID 连接),然后在电报上发送确认消息一切都好。
我的问题是如何告诉 python 脚本浏览器中的操作已完成?现在我一直在查询数据库,但我的解决方案非常愚蠢,因为如果用户不执行任何操作,查询就会永远进行下去。
有什么正确的建议吗? 谢谢 <3
我在这里看到两个可行的解决方案:
直接从网站发送消息。虽然一次只允许一个进程 获取 更新,但您可以根据需要从任意多台服务器发出其他请求。根据您网站的工作方式,您可以向 Bot API 发出纯 HTTP 请求,或使用 API 包装器(如
python-telegram-bot
)或其他语言的包装器来发出请求。例如如果您是 运行 基于 php 的网站,则可以使用 php API 包装器。如果出于某种原因 1. 不适合您,您可以尝试通知您的 运行 进程有关用户登录的信息。 PTB 常见问题解答 an entry 应该可以帮助您入门。如果您的网站和机器人 运行 在同一台服务器上,则可以使
update_queue
直接可用于网站进程。如果没有,您可以尝试为您的 bot 设置一个 webhook 并 post 对 webhook 进行更新,然后将其排入update_queue
方法 1. 的缺点是您没有将所有机器人逻辑放在一个地方,但它应该比方法 2 更容易实现。
免责声明:我目前是 python-telegram-bot