如何與始終運行的 python 腳本通信

用戶8094488

我正在開發一個 python 電報機器人,我有一個始終在運行的腳本(用於從電報接收新命令),我希望機器人在用戶在網站上執行操作時發送消息。示例:用戶啟動機器人,機器人發送鏈接以在網站上執行操作(例如登錄用戶帳戶並將電報 ID 與用戶 ID 關聯),然後在電報上發送確認消息,一切正常。

我的問題是如何告訴 python 腳本瀏覽器中的操作已完成?現在我一直在查詢數據庫,但我的解決方案非常愚蠢,因為如果用戶不執行任何操作,查詢就會永遠進行。

任何建議如何正確地做到這一點?謝謝 <3

CallMeStag

我在這裡看到兩個可行的解決方案:

  1. 直接從網站發送消息。雖然一次只允許一個進程獲取更新,但您可以根據需要從任意數量的服務器發出其他請求。根據您網站的工作方式,您可以向 Bot API 發出純 HTTP 請求,或使用類似 API 包裝器python-telegram-bot或不同語言的包裝器來發出請求。例如,如果您運行的是基於 php 的網站,則可以使用 php API 包裝器。

  2. 如果由於某種原因 1. 不適合您,您可以嘗試通知您的運行進程有關用戶登錄的信息。PTB 常見問題中有一個條目可以幫助您入門。如果您的網站和機器人在同一台服務器上運行,則可以update_queue直接將其提供給網站進程使用。如果沒有,您可以嘗試為您的機器人設置一個 webhook 並向 webhook 發布更新,然後您將其排入隊列update_queue

方法 1. 的缺點是您沒有將所有機器人邏輯放在一個地方,但它應該比方法 2 更容易實現。


免責聲明:我目前是 python-telegram-bot

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python 運行與我的腳本不同的腳本

如何安排從anaconda運行的python腳本?

Python InDesign 腳本:如何運行預檢?

如何從 Python 腳本運行 nohup 命令?

如何選擇 CPU 來運行 python 腳本?

使用 nohup 依次運行多個 python 腳本

Python 腳本未執行

如何運行python腳本直到它結束而沒有錯誤?

如何通過命令啟動屏幕並運行python腳本

LUA - 如何停止運行腳本

從 VS 代碼在 Python IDLE 中運行 python 腳本

如何“重置”在使用 Flask 應用程序數據庫的 Python 腳本中運行的 db.session?

在 PutFile 之後執行 Python 腳本(Apache - NiFi)

在數據工廠中使用 Azure Function APP 運行 Python 腳本

模塊未導入在啟動時運行 python 腳本

試圖運行我的 python 腳本沒有做任何事情

運行 Python/PySpark 腳本時出現環境變量錯誤

使用已導入的模塊/模塊運行 python 腳本

在命令行/批處理文件/python 腳本中運行 java 主類

如何在gdbinit腳本中使用python

我如何使用 python 後端部署 php 腳本

如何從 R 獲取 Python 腳本

如何從另一個 Python 腳本訪問 Python 腳本的動態變量?

從另一個腳本運行一個 python 腳本,其中命令行參數具有可執行文件

如何在spark中將雙大括號從shell腳本傳遞到python腳本?

僅當函數與 bash 腳本中的指定 URL 匹配時,如何運行該函數?

如何在線運行我的 powershell 腳本?

導入後如何運行腳本?

如何在 shell 腳本中運行 sacct 命令