60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
import schedule
|
|
import time
|
|
from config.log_config import logger
|
|
|
|
from work.daily_stock import get_stock_message, get_today_stock
|
|
from work.daily_weather import get_today_indices, get_today_weather, get_weather_message
|
|
from message.wechat_message import send_wechat_message, MessageEnum
|
|
|
|
|
|
def daily_weather_task():
|
|
logger.info("执行定时天气任务...")
|
|
weather = get_today_weather()
|
|
indices = get_today_indices()
|
|
send_wechat_message(MessageEnum.MARKDOWN2, get_weather_message(weather, indices), True)
|
|
|
|
|
|
def daily_stock_task():
|
|
logger.info("执行定时股票任务...")
|
|
stock = get_today_stock()
|
|
send_wechat_message(MessageEnum.MARKDOWN, get_stock_message(stock))
|
|
|
|
|
|
def daily_order_supper_task():
|
|
logger.info("执行定时订饭任务...")
|
|
send_wechat_message(MessageEnum.TEXT, "📢 订饭时间到!记得订晚饭~")
|
|
|
|
|
|
def setup_schedule():
|
|
schedule.every().day.at("09:00").do(daily_weather_task)
|
|
schedule.every().day.at("15:00").do(daily_stock_task)
|
|
schedule.every().day.at("14:00").do(daily_order_supper_task)
|
|
|
|
|
|
def run_schedule():
|
|
"""运行定时任务"""
|
|
while True:
|
|
schedule.run_pending()
|
|
time.sleep(1)
|
|
|
|
|
|
def main():
|
|
logger.info("程序启动,开始设置定时任务...")
|
|
# daily_weather_task()
|
|
# daily_stock_task()
|
|
# daily_order_supper_task()
|
|
|
|
setup_schedule()
|
|
try:
|
|
run_schedule()
|
|
except KeyboardInterrupt:
|
|
logger.info("\n程序被用户中断,正在退出...")
|
|
schedule.clear()
|
|
logger.info("所有定时任务已清除")
|
|
except Exception as e:
|
|
logger.error(f"程序发生错误: {str(e)}", exc_info=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|