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

Python开发每日定时发消息Telegram Bot及运行持续性疑问

关于Telegram Bot定时任务运行的核心问题解答

核心结论

关闭运行代码的电脑后,你的Bot无法继续运行并按时发送消息。

原因说明

Telegram Bot本身只是Telegram服务器上的一个身份标识(通过你提供的TOKEN识别),但执行发送消息、定时触发这些逻辑的是你本地运行的Python代码——这些代码必须持续运行在一台开机且联网的设备上(比如你的电脑、树莓派、云服务器)。一旦设备关机、代码进程终止,定时任务就会完全失效。

你的现有代码补充

你当前的schedule代码只添加了任务,缺少持续检查任务的循环逻辑,需要补充才能正常工作:

import requests
import schedule
import time

def send_message():
    TOKEN = '你的真实TOKEN'  # 替换为你的Bot Token
    GROUP_CHAT_ID = "你的真实群组ID"  # 替换为目标群组ID
    post_text = "每日定时推送的消息内容"

    url = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={GROUP_CHAT_ID}&text={post_text}"
    print(requests.get(url).json())

# 添加定时任务
schedule.every().day.at("00:01").do(send_message)

# 持续运行任务检查循环
while True:
    schedule.run_pending()
    time.sleep(60)  # 每分钟检查一次,降低资源占用

可行的长期运行方案

要让Bot稳定每日执行,你需要让代码持续运行在一个不关机的设备上,推荐几种方案:

  • 云服务器托管:将代码部署到云服务器(如轻量应用服务器),通过nohup python your_script.py &让代码后台运行,或者配置systemd服务实现开机自启、进程守护。
  • 低功耗设备运行:用树莓派这类低功耗设备,常年开机运行代码,设置开机自启即可,适合家庭场景。
  • 云函数定时触发:使用云函数,配置每日00:01的定时触发器,每次触发时执行发送消息的代码,无需自己维护服务器运行状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:32:43