Currently, Router announces that there is a new job, but it does not say which worker Broker should execute for this job until Broker asks for the job. If Broker doesn't have the worker for it, the job will fail. So, I propose:
Router, when announcing jobs, should specify worker name (and maybe job id)
Broker should only ask for jobs if it has the worker specified (or it can specify directly in the get job message which worker it wants)
Optionally, Broker can send all workers it has loaded to Router when it starts, so Router will know all workers it can execute in the entire cluster.
Currently, Router announces that there is a new job, but it does not say which worker Broker should execute for this job until Broker asks for the job. If Broker doesn't have the worker for it, the job will fail. So, I propose:
get job
message which worker it wants)Optionally, Broker can send all workers it has loaded to Router when it starts, so Router will know all workers it can execute in the entire cluster.