worker是flamenco的渲染节点,一般是带有GPU设备的计算机,manager收到任务后由worker取到任务来执行。

具体执行的方式是:manager已经确定好了支持哪些类型的job,比如渲染,使用的是blender,那么用户在提交此种类型的任务时就可以确定使用哪些参数,比如 -output example.png 指定输出图片的名称。worker中有对应的blender程序执行模块,取到此任务时他就在本地执行”blender -output example.png … “完成此项任务。

worker的定义:

// Worker performs regular Flamenco Worker operations.
type Worker struct {
    doneChan chan struct{}
    doneWg   *sync.WaitGroup

    // Will be closed by the Worker when it wants to shut down. See Worker.WaitForShutdown().
    shutdown             chan struct{}
    restartAfterShutdown bool

    client FlamencoClient

    state         api.WorkerStatus
    stateStarters map[api.WorkerStatus]StateStarter // gotoStateXXX functions
    stateMutex    *sync.Mutex

    taskRunner TaskRunner
}