在 python-telegram-bot 中另一个命令已经 运行ning 时,有什么方法可以 运行 一个命令吗?
Is there any way to run a command while another command is already running in python-telegram-bot?
假设 start 函数中有一个无限循环。在 运行ning 期间...我需要在后台向 运行 发送另一个命令。另一个功能。 (例如一个停止命令)我试着把它放在“updater.start_polling()”之后,但由于一些原因它没有用。我无法为此设置调度程序。
def start(update: Update, context: CallbackContext) -> None:
while true:
context.bot.send_message(chat_id=update.effective_chat.id, text= "Choose an option. ('/option1' , '/option 2', '/...')")
def main():
updater = Updater("<MY-BOT-TOKEN>", use_context=True)
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
利用线程
from time import sleep
from threading import Thread
def start(update: Update, context: CallbackContext) -> None:
while true:
context.bot.send_message(chat_id=update.effective_chat.id, text= "Choose an option. ('/option1' , '/option 2', '/...')")
sleep(.1)
def stop():
pass # some code here
def main():
updater = Updater("<MY-BOT-TOKEN>", use_context=True)
updater.dispatcher.add_handler(CommandHandler('start', start))
t1 = Thread(target=updater.start_polling)
t2 = Thread(target=stop)
t1.start()
t2.start()
updater.idle()
if __name__ == '__main__':
main()
好的,我找到了一个方法...在开始轮询后设置 while true 并让它等待标志变为真。当用户发送更新时,它会触发函数并使标志为真。在“开始轮询()”之后触发代码。使用 time.sleep(1) 我可以 运行 同时执行多个命令
假设 start 函数中有一个无限循环。在 运行ning 期间...我需要在后台向 运行 发送另一个命令。另一个功能。 (例如一个停止命令)我试着把它放在“updater.start_polling()”之后,但由于一些原因它没有用。我无法为此设置调度程序。
def start(update: Update, context: CallbackContext) -> None:
while true:
context.bot.send_message(chat_id=update.effective_chat.id, text= "Choose an option. ('/option1' , '/option 2', '/...')")
def main():
updater = Updater("<MY-BOT-TOKEN>", use_context=True)
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
利用线程
from time import sleep
from threading import Thread
def start(update: Update, context: CallbackContext) -> None:
while true:
context.bot.send_message(chat_id=update.effective_chat.id, text= "Choose an option. ('/option1' , '/option 2', '/...')")
sleep(.1)
def stop():
pass # some code here
def main():
updater = Updater("<MY-BOT-TOKEN>", use_context=True)
updater.dispatcher.add_handler(CommandHandler('start', start))
t1 = Thread(target=updater.start_polling)
t2 = Thread(target=stop)
t1.start()
t2.start()
updater.idle()
if __name__ == '__main__':
main()
好的,我找到了一个方法...在开始轮询后设置 while true 并让它等待标志变为真。当用户发送更新时,它会触发函数并使标志为真。在“开始轮询()”之后触发代码。使用 time.sleep(1) 我可以 运行 同时执行多个命令