Sha256: 5af5ac644a6daaf0ca2df37f6fb5ab92c98ecb5099a24160c7693e4b97f73eae
Contents?: true
Size: 835 Bytes
Versions: 1
Compression:
Stored size: 835 Bytes
Contents
module Kamerling class TaskDispatcher def initialize net_dispatcher: NetDispatcher.new, repos: Repos @net_dispatcher = net_dispatcher @repos = repos end def dispatch repos.projects.each do |project| repos.free_clients_for(project).each do |client| task = repos.next_task_for(project) dispatch_task client: client, project: project, task: task if task end end end attr_reader :net_dispatcher, :repos private :net_dispatcher, :repos private def dispatch_task client: req(:client), project: req(:project), task: req(:task) message = Message[client: client, payload: task.data, project: project, task: task, type: :DATA] net_dispatcher.dispatch client.addr, message.to_s client.busy = true repos << client end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kamerling-0.0.1 | lib/kamerling/task_dispatcher.rb |