Digraph

class Digraph

用于构建有向图,防止Task出现循环依赖的情况
详细逻辑请见官网文档:https://therouter.cn/docs/2022/08/26/01

Constructors

Digraph
链接已复制到剪贴板
fun Digraph()

Functions

addPendingRunnable
链接已复制到剪贴板
fun addPendingRunnable(r: Runnable): Boolean

待执行的task

addTask
链接已复制到剪贴板
fun addTask(task: Task?)

向有向图中加入Task

beforeSchedule
链接已复制到剪贴板
fun beforeSchedule()

由于initSchedule执行比较耗时需要放到异步,而Before需要在路由表初始化之前执行,需要同步 所以单独列出一个方法,检测dependsOn只有beforTheRouterInit的任务,提前执行

getDepends
链接已复制到剪贴板
fun getDepends(root: Task): Set<Task>

返回入参 Task 的依赖 Task

getVirtualTask
链接已复制到剪贴板
fun getVirtualTask(name: String): VirtualFlowTask

通过taskName获取一个虚拟task,如果不存在,则创建一个新的虚拟task

initSchedule
链接已复制到剪贴板
fun initSchedule()

初始化方法

onVirtualTaskDoneListener
链接已复制到剪贴板
fun onVirtualTaskDoneListener(name: String)

VirtualTask 执行完后调用此方法,用于通知其他依赖此 VirtualTask 的其他 Task 执行

schedule
链接已复制到剪贴板
fun schedule()

开始调度,依次执行无依赖的task,详细逻辑请见官网文档:https://therouter.cn/docs/2022/08/26/01

Properties

inited
链接已复制到剪贴板
var inited: Boolean = false