def startup_collector(self): """ @FIXME 修复缓存堆积问题,并将本机任务队列推向分布式消息队列 @return: """ for task_name in self.deploy_cluster: sailor.manage_task(class_=task_name)
def startup_collector(self): """ @FIXME 修复缓存堆积问题,并将本机任务队列推向分布式消息队列 @return: """ # -------------------------------------------------------------- # TODO v5.4.r 版本更新 # 将“采集器指令发起”定时任务改为无阻塞发动,尝试解决定时器任务“赶不上趟”的问题 # -------------------------------------------------------------- # task_queue = [] # for task_name in self.deploy_cluster: # task = gevent.spawn(sailor.manage_task, class_=task_name) # task_queue.append(task) # gevent.joinall(task_queue) for task_name in self.deploy_cluster: sailor.manage_task(class_=task_name)
def run(beat_sync=True, force_run=None) -> None: """ 本地运行--检查队列残缺 # 所有类型任务的节点行为的同时发起 or 所有类型任务的节点行为按序执行,node任务之间互不影响 --v2rayChain --vNode_1 --vNode_2 --.... --ssrChain --sNode_1 --sNode_2 --... --.. -----> runtime v2rayChain IF USE vsu -> runtime allTask =====> runtime ... -----> runtime ssrChain ELSE -> runtime allTask -> Chain_1 -> Chain_2 -> ... -----> runtime node_1 IF USE go -> runtime allNode =====> runtime ... -----> runtime node_N ELSE -> runtime allNode-> the_node_1 -> the_node_2 -> ... @return: """ # 同步任务队列(广度优先) # 这是一次越权执行,无论本机是否具备collector权限都将执行一轮协程空间的创建任务 for class_ in CRAWLER_SEQUENCE: sailor.manage_task(class_=class_, beat_sync=beat_sync, force_run=force_run) # FIXME 节拍同步 if not beat_sync: from src.BusinessCentralLayer.middleware.subscribe_io import FlexibleDistribute FlexibleDistribute().start() # 执行一次数据迁移 # TODO 将集群接入多哨兵模式,减轻原生数据拷贝的额外CPU资源开销 _cd.startup_ddt_overdue() # 任务结束 logger.success('<Gevent>任务结束')