|
@@ -0,0 +1,68 @@
|
|
|
|
+import asyncio
|
|
|
|
+import json
|
|
|
|
+import sys
|
|
|
|
+import orjson
|
|
|
|
+from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
|
|
|
+from apscheduler.triggers.cron import CronTrigger
|
|
|
|
+from loguru import logger
|
|
|
|
+
|
|
|
|
+from utils.gpt4o_mini_help import GPT4oMini
|
|
|
|
+
|
|
|
|
+sys.path.append('/app')
|
|
|
|
+from utils.piaoquan import PQ
|
|
|
|
+from utils.redis import RedisHelper, content_video_data
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class ConsumptionSpiderRecommend(object):
|
|
|
|
+ @classmethod
|
|
|
|
+ async def run(cls):
|
|
|
|
+ logger.info(f"[处理] 开始获取redis数据")
|
|
|
|
+
|
|
|
|
+ task = RedisHelper().get_client().rpop(name = 'task:pq_hour_early')
|
|
|
|
+ if not task:
|
|
|
|
+ logger.info('[处理] 无待处理的数据')
|
|
|
|
+ return
|
|
|
|
+ task = orjson.loads(task)
|
|
|
|
+ logger.info(f"[处理] 获取redis数据{task}")
|
|
|
|
+ video_title = task['video_title']
|
|
|
|
+ logger.info(f"[处理] 开始分析标题是否符合早上发送,标题:{video_title}")
|
|
|
|
+ title_type = GPT4oMini.get_ai_mini_early(video_title)
|
|
|
|
+ content_video_data(json.dumps({
|
|
|
|
+ "video_id": task['video_id'],
|
|
|
|
+ "video_title": task['video_title'],
|
|
|
|
+ "status": title_type
|
|
|
|
+ }), "task:spider_early_data")
|
|
|
|
+ if title_type == "否":
|
|
|
|
+ return
|
|
|
|
+ logger.info('[处理] 开始上推荐处理')
|
|
|
|
+ code = PQ.pq_recommended(task['video_id'])
|
|
|
|
+ if code:
|
|
|
|
+ logger.info('[处理] 上推荐处理成功')
|
|
|
|
+ PQ.video_tag(task['video_id'], "lev-供给,rol-机器,#str-早安内容固定时段上推荐_62")
|
|
|
|
+ logger.info('[处理] 视频打固定标签成功')
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+async def run():
|
|
|
|
+ scheduler = AsyncIOScheduler()
|
|
|
|
+ try:
|
|
|
|
+ logger.info(f"[处理] 开始启动")
|
|
|
|
+ scheduler.add_job(
|
|
|
|
+ ConsumptionSpiderRecommend.run,
|
|
|
|
+ trigger=CronTrigger(hour='2-6', minute='*') # 2:00-6:59 每分钟执行一次
|
|
|
|
+ )
|
|
|
|
+ scheduler.start()
|
|
|
|
+ await asyncio.Event().wait()
|
|
|
|
+ except KeyboardInterrupt:
|
|
|
|
+ pass
|
|
|
|
+ except Exception as e:
|
|
|
|
+ logger.error(f"[处理] 启动异常,异常信息:{e}")
|
|
|
|
+ pass
|
|
|
|
+ finally:
|
|
|
|
+ scheduler.shutdown()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
+ # asyncio.run(ConsumptionSpiderRecommend.run())
|
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
|
+ loop.run_until_complete(run())
|