You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义Telegram bot内部实现定时循环发送价格更新功能

解决方案

直接使用python-telegram-bot库内置的JobQueue调度组件实现定时推送,无需引入任何第三方依赖,也不会阻塞原有机器人的命令响应逻辑。

修改后的完整代码如下:

import telegram
from telegram.ext import Updater
from telegram.ext import CommandHandler
from tracker import get_prices

telegram_bot_token = "mybot"

updater = Updater(token=telegram_bot_token, use_context=True)
dispatcher = updater.dispatcher
job_queue = updater.job_queue

# 单独封装价格推送逻辑,每次触发生成全新消息
def send_price(context):
    job = context.job
    chat_id = job.context
    message = ""

    crypto_data = get_prices()
    for i in crypto_data:
        coin = crypto_data[i]["coin"]
        price = crypto_data[i]["price"]
        change_day = crypto_data[i]["change_day"]
        change_hour = crypto_data[i]["change_hour"]
        message += f" {coin}={price:,.5f}$ \nHour Change: {change_hour:.3f}%\nDay Change: {change_day:.3f}%\n\n"

    context.bot.send_message(chat_id=chat_id, text=message)

def start(update, context):
    chat_id = update.effective_chat.id
    # 先立即发送一次当前价格
    send_price(context)
    # 注册5分钟周期的定时推送任务,interval单位为秒,需要更长间隔直接调整该数值即可
    new_job = job_queue.run_repeating(send_price, interval=300, first=0, context=chat_id)
    # 把任务id存到聊天数据里,方便后续取消
    context.chat_data['price_job'] = new_job
    update.effective_message.reply_text("已开启价格推送,每5分钟更新一次,发送/stop可停止推送")

def stop(update, context):
    if 'price_job' in context.chat_data:
        context.chat_data['price_job'].schedule_removal()
        del context.chat_data['price_job']
        update.effective_message.reply_text("已停止价格推送")
    else:
        update.effective_message.reply_text("当前未开启价格推送")

dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CommandHandler("stop", stop))
updater.start_polling()
updater.idle()

关键逻辑说明

  • 所有功能都基于现有库的原生能力实现,不需要引入额外第三方服务或工具
  • send_price函数每次执行都会重新拉取价格、生成全新的消息内容,单独调用发送接口,不会和历史消息产生关联,满足每次单独发送新消息的需求
  • 定时任务和原有命令响应逻辑并行运行,不会互相阻塞,机器人依然可以正常响应其他命令

内容的提问来源于stack exchange,提问作者dexman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:51:02