- Added default parameter
workers_name
to storeuid
of workers in Task. - Added variable
is_picked_up
to keep track of task assignment in Task. - Added dictionary
queue_map
in TaskQueue to keep separate task queue for all workers in case of need, or else it will be stored indefault
queue. - If there is non-empty
workers_name
given in Task object, means task needs to run by givenuid
workers only, else it can be run by anyone. - Create separate queue for each
uid
ofworkers_name
& manage it throughqueue_map
. - While assigning Task to Worker and popping from queue, check if task is picked up by another worker already or not through
Task.is_picked_up
variable. - If
Task.is_picked_up
is True then don't assign anything for that pull request, else assign it & markTask.is_picked_up
True. - While
_handle_taskresults
,_decommission_worker
,_discard_task
,discard_pending_tasks
, markTask.is_picked_up
False.
- Test