Make workers assign work to closer idle workers
Emil Hemdal 7 years ago • updated by Stefan Furcht (Programmer) 7 years ago • 4
When workers have taken a task it's locked to that worker pretty much forever. I would much more prefer that if there's a worker that is much closer to a task that the worker farther away gave it's work to the closer worker to improve speed of doing things.
Customer support service by UserEcho
This is exactly what is happening already.
If a worker searches for a task which has more than a 10% shorter path to an already assigned task, he will take this task over and the old assignee will search for a new task.
Did you encounter a case where this didn't work?
Can you provide an example, screenshot or video?
It sometimes doesn't feel like they are doing the switch but it could be me having a hard time detecting a worker that is occupied and not. "Invalidate" this report for now until I or someone else can show it not working.
I'll mark it as declined for now then, but if you can find any evidence of it not working properly just let us know (in this thread) and I can re-open the ticket as appropriate.
It could have looked like this because idle workers only try each 4 seconds to find a new task to not hurt performance with task queries while just being idle and maybe there aren't even any tasks.
So maybe inbetween these 4 seconds a task popped in proximity, but another worker which was further away took the task before the idle worker even tried.
While this is a little accuracy issue, it wont cause any issues in a larger scope.
If an idle worker is really much nearer to a task than all other workers then another worker wont make it in time to become nearer inbetween 4 seconds and the idle worker will correctly take over.
At least I guess this was the effect encountered here.