【发布时间】:2023-12-22 21:23:01
【问题描述】:
我正在尝试设置一个每小时发送消息的机器人,我尝试了我在谷歌和堆栈溢出中找到的所有内容,但似乎无法让作业队列工作。这是我的代码,我几乎是从官方的 python-telegram-bot git hub 获取的。这是代码,非常感谢任何帮助。
from telegram.ext import Updater
u = Updater('bot_token', use_context=True)
j = u.job_queue
def callback_minute(context):
context.bot.send_message(chat_id='my_chat_id', text='One message every minute')
job_minute = j.run_repeating(callback_minute, interval=10)
u.start_polling()
u.idle()
这是我得到的回溯
Error submitting job "callback_minute (trigger: interval[0:00:10], next run at: 2021-09-06 08:50:47 UTC)" to executor "default"
Traceback (most recent call last):
File "C:\Users\aeriu\AppData\Local\Programs\Python\Python39\lib\site-packages\apscheduler\schedulers\base.py", line 974, in _process_jobs
executor.submit_job(job, run_times)
File "C:\Users\aeriu\AppData\Local\Programs\Python\Python39\lib\site-packages\apscheduler\executors\base.py", line 71, in submit_job
self._do_submit_job(job, run_times)
File "C:\Users\aeriu\AppData\Local\Programs\Python\Python39\lib\site-packages\apscheduler\executors\pool.py", line 22, in _do_submit_job
f = self._pool.submit(run_job, job, job._jobstore_alias, run_times, self._logger.name)
File "C:\Users\aeriu\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\thread.py", line 163, in submit
raise RuntimeError('cannot schedule new futures after '
RuntimeError: cannot schedule new futures after interpreter shutdown
【问题讨论】:
-
请注意,您必须启动作业队列 - 一旦您调用
u.start_polling/webhook,它就会自动完成 - 否则它将不会处理任何作业 -
试过了,它给我发了一个错误
Error submitting job "callback_minute (trigger: interval[0:00:10], next run at: 2021-09-06 08:34:21 UTC)" to executor "default" -
这是完整的回溯吗?你在哪个ptb版本? sn-p 对我来说很好用……
-
我使用的是 13.7 版本,我编辑了主帖以粘贴整个回溯 ```
-
您发布的 sn-p 无法生成该回溯。你可能在某处打电话给
job_queue.stop()……请展示一个适当的最小工作示例。有专门针对 PTB 的 MWE 指南here
标签: python python-telegram-bot job-queue