Class: Hatchet::WorkerContext

Inherits:
Object
  • Object
show all
Defined in:
lib/hatchet/worker_obj.rb

Overview

Provides worker-level operations available from within task contexts

Instance Method Summary collapse

Constructor Details

#initialize(worker:) ⇒ WorkerContext

Returns a new instance of WorkerContext.

Parameters:

  • worker (Worker)

    The worker instance



278
279
280
# File 'lib/hatchet/worker_obj.rb', line 278

def initialize(worker:)
  @worker = worker
end

Instance Method Details

#idString?

Get the worker ID

Returns:

  • (String, nil)


284
285
286
# File 'lib/hatchet/worker_obj.rb', line 284

def id
  @worker.worker_id
end

#labelsHash

Get current worker labels

Returns:

  • (Hash)


290
291
292
# File 'lib/hatchet/worker_obj.rb', line 290

def labels
  @worker.labels
end

#upsert_labels(new_labels) ⇒ Object

Upsert worker labels on the server and update local state.

Parameters:

  • new_labels (Hash)

    Labels to add or update



297
298
299
300
301
302
303
304
305
306
# File 'lib/hatchet/worker_obj.rb', line 297

def upsert_labels(new_labels)
  @worker.labels.merge!(new_labels)

  return unless @worker.worker_id && @worker.client

  @worker.client.dispatcher_grpc.upsert_worker_labels(
    worker_id: @worker.worker_id,
    labels: new_labels,
  )
end