Python电报Bot-run_daily不起作用

问题描述 投票:1回答:1

我与此thread有相同的问题

run_daily没有完成其工作。 run_oncerun_repeating运作良好。

我不明白为什么。我测试了您的代码,但未执行任务

import telegram.ext
from telegram.ext import Updater
import datetime

updater = Updater('My Token', use_context=True)
job = updater.job_queue

def callback_minute(context: telegram.ext.CallbackContext):
    context.bot.send_message(chat_id='My Chat ID', text='One message every minute')

t = datetime.time(20, 2, 00, 000000)
job.run_daily(callback_minute,t,days=(0, 1, 2, 3, 4, 5, 6),context=None,name=None)

updater.start_polling()
updater.idle()

我已经尝试过使用this code,但它也不起作用

from telegram.ext import Updater, CommandHandler
import datetime

def daily_job(bot, update, job_queue):
    """ Running on Mon, Tue, Wed, Thu, Fri = tuple(range(5)) """
    bot.send_message(chat_id='My Chat ID', text='Setting a daily notifications!')
    t = datetime.time(7, 30, 00, 000000)
    job_queue.run_daily(notify_assignees, t, days=tuple(range(5)), context=update)

def notify_assignees(bot, job):
    bot.send_message(chat_id='My Chat ID', text="Some text!")

updater = Updater('My Token')
updater.dispatcher.add_handler(CommandHandler('notify', daily_job, pass_job_queue=True))

updater.start_polling()

在两种情况下,任务都已添加到jobs()但未完成...

python python-telegram-bot
1个回答
0
投票

我找到了问题的原因。任务时间后退了两个小时。我在19点订购的任务在21点进行。

通过调试两个任务run_dailyrun_repeating并检查.next_t最容易观察到>

import telegram.ext
from telegram.ext import Updater
import datetime

updater = Updater('My Token', use_context=True)
job = updater.job_queue

def example_task(context: telegram.ext.CallbackContext):
    context.bot.send_message(chat_id='My Chat ID', text='Hello!')

t = datetime.time(19, 52, 00, 000000)
jobDay = job.run_daily(example_task,t,days=(0, 1, 2, 3, 4, 5, 6))

jobRepeating = job.run_repeating(example_task, 10)

print(jobDay.next_t)
print(jobRepeating.next_t)

updater.start_polling()
updater.idle()
© www.soinside.com 2019 - 2024. All rights reserved.