Netflix conductor 学习笔记(1)client

conductor的代码实现很简单。启动后将worker注册到server,并定时从server获得worker的task,并在本地执行。

Netflix conductor 学习笔记(1)client_第1张图片

 

WorkflowTaskCoordinate通过内部的Build类进行初始化。Build除了承载参数,提供流式操作,创建WorkflowTaskCoordinate外,没有任何其他作用。

WorkflowTaskCoordinate会初始化两个线程池:ExecutorService和ScheduledExecutorService。ExecutorService是当有任务时,执行任务的线程池。

ScheduledExecutorService是定期从Server获得任务的线程池。间隔默认为1s。每次执行后返回结果,worker都返回自己本地的环境参数。所以还以worker的实例为主键,缓存了本地执行环境的描述信息。

Worker的名字,就是task的类型,对应Server中Task的描述信息。

Worker中使用了Eureka。但是查看代码的过程中发现,Worker并没有使用Eureka的特性。唯一用的地方是,在poll task之前,先判断server的实例是否存在。但是此判断需要在用户设置了EurekaClient时才会生效。所以总的来说,并没有用到Eureka。也可能是Netflix希望用户自己编写这部分的逻辑,让worker充分使用微服务的特性。

时序图

Netflix conductor 学习笔记(1)client_第2张图片

 

转载于:https://my.oschina.net/u/347227/blog/1377548

你可能感兴趣的:(Netflix conductor 学习笔记(1)client)