我正在使用python-telegram-bot处理一个Telegram bot,我希望停止运行Telegram.job对象。
例如,我希望在hello函数处于while循环时停止运行该函数。
def hello(context):
while True:
context.bot.send_message(chat_id=context.job.context, text="Hi!")
def start(update,context):
context.job_queue.run_once(hello, 10, context=update.message.chat_id, name=update.effective_chat.id)
def end(update,context):
for job in context.job_queue._queue.queue:
if job[1].name == update.effective_chat.id:
context.job_queue._queue.queue.remove(job)
问题是,当我在作业开始前使用end命令时(最初10秒),它可以正常工作并停止作业,但当我在运行作业时使用end命令时,它什么也不做,因为正在运行的作业不在作业队列中。
你知道吗?如何停止正在运行的作业?
我不认为通过PTB本身有一个直接的方法来做到这一点,但它很容易自己编程。您始终可以访问context.bot_data
字典。
因此,在那里存储一个变量,如run_job_a=true
,并在循环的每次迭代中检查它。然后,您可以通过将其值更改为false来停止该作业。
我一直试图在Android设备中添加一个机器人到我的电报组中,但我无法做到这一点。我尝试了@bot_name,/bot_name,但都不起作用。 是否可以添加一个bot到组中,或者我应该使用Telegram API(而不是bot API)创建一个新的bot,以便我可以将联系号码添加到组中?
我的电报机器人是用煤气做的,但我的自定义键盘不工作。我的functon发送消息如下。谢谢 VAR有效载荷={'method':'sendMessage','chat_id': String(chat Id),'text': text,'parse_mode':'超文本标记语言'} }
我无法理解电报机器人api的Reply_to_message方法。以下是我的代码: 这里,当用户发送/启动机器人发送hello world文本。我想让用户回复发送hello world的消息。我的意思是当用户发送/启动机器人回复信息的文本“你好,世界!” 我使用网络钩子。
问题内容: 我在停止“供稿”时遇到问题;cancel参数似乎对after方法没有任何影响。尽管“进纸停止”已打印到控制台。 我尝试使用一个按钮将启动供稿,而另一个按钮将停止供稿。 随着输出: 问题答案: 问题是,即使你打电话与停止循环,已经有等待消防挂起的工作。按下停止按钮不会触发新的作业,但是旧的作业仍然存在,并且当它自己调用时,它将传入False,这将导致循环继续。 您需要取消待处理的作业,以
我通过创建固定数量的线程来使用执行器服务来进行HTTP GET数据检索。 当Tomcat停止时,我们会出现以下错误: 严重:web应用程序[/viewer]似乎已启动名为[ThreadExecutor_51616156]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这是真的吗?在没有这些服务错误的情况下,如何正确停止tomcat。
我不知道如何使用电报机器人诱导(触发)本地服务器向通道发送消息。 例如,从用户注册并连接电报的网站向用户发送通知。我们假设用户已经开始与bot对话,并准备好接收来自bot的消息。 我有一个单独的服务器,可以使用bot向服务器发送请求,但我不明白如何在这个电报机器人服务器上接收和处理请求。 我正在使用go电报-机器人-api库,此时服务器使用长轮询方法而不是webhooks。所以它通过更新通道接收一