Class: HTM::Jobs::GenerateTagsJob
- Inherits:
-
Object
- Object
- HTM::Jobs::GenerateTagsJob
- Defined in:
- lib/htm/jobs/generate_tags_job.rb
Overview
Background job to generate and associate tags for nodes
Class Method Summary collapse
-
.perform(node_id:) ⇒ Object
Generate tags for a node.
Class Method Details
.perform(node_id:) ⇒ Object
Generate tags for a node
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/htm/jobs/generate_tags_job.rb', line 18 def self.perform(node_id:) node = find_node(node_id) or return provider = HTM.configuration.tag_provider.to_s start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) begin tag_names = (node) return if tag_names.empty? (node, tag_names) record_telemetry(provider, start_time, 'success') HTM.logger.info "GenerateTagsJob: Generated #{tag_names.length} tags for node #{node_id}: #{tag_names.join(', ')}" HTM::JobAdapter.enqueue(HTM::Jobs::GenerateRelationshipsJob, node_id: node_id) rescue HTM::CircuitBreakerOpenError HTM::Telemetry.job_counter.add(1, attributes: { 'job' => 'tags', 'status' => 'circuit_open' }) HTM.logger.warn "GenerateTagsJob: Circuit breaker open for node #{node_id}" rescue HTM::TagError, Sequel::ValidationFailed => e record_telemetry(provider, start_time, 'error') HTM.logger.error "GenerateTagsJob: Failed for node #{node_id}: #{e.}" rescue StandardError => e record_telemetry(provider, start_time, 'error') HTM.logger.error "GenerateTagsJob: Unexpected error for node #{node_id}: #{e.class.name} - #{e.}" end end |