from channel.toutiao.toutiao import Toutiao from database.database import get_session from database.tcontentdispatch.curd import get_recent_24_hours_content_to_dispatch from database.tscheduler.model import TScheduler from database.ttaskqueue.curd import create_task from database.ttaskqueue.model import TTaskQueue from log.log_manager import log from task.manager_task import execute_task def article_publish(): # 1. 从数据库获取文章 with get_session() as db: # 2. 获取所有未发布的文章 article = get_recent_24_hours_content_to_dispatch(db, '新鲜事') if article: # 3. toutiao发布文章 toutiao = Toutiao(article) toutiao.publish() # 4. 打印日志 log(f'publish article {article.title} to toutiao success with article id: {article.id} and article time: {article.get_creation_date_in_localtime()}') def article_publish_task(): execute_task(article_publish) def article_publish_use_task_queue(scheduler: TScheduler): with get_session() as db: task = TTaskQueue() task.task_name = 'toutiao_article_publish' task.module_path = scheduler.module_path task.function_name = scheduler.handler task.scheduler = scheduler.task_name create_task(db, task) if __name__ == '__main__': article_publish_task()