Class: QaServer::MonitorTestsJob

Inherits:
ApplicationJob
  • Object
show all
Includes:
AuthorityValidationBehavior
Defined in:
app/jobs/qa_server/monitor_tests_job.rb

Constant Summary

Constants included from AuthorityValidationBehavior

AuthorityValidationBehavior::ALL_VALIDATIONS, AuthorityValidationBehavior::DEFAULT_VALIDATION_TYPE, AuthorityValidationBehavior::VALIDATE_ACCURACY, AuthorityValidationBehavior::VALIDATE_CONNECTIONS, AuthorityValidationBehavior::VALIDATION_TYPE_PARAM

Instance Method Summary collapse

Instance Method Details

#performObject

def perform(job_id:)



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/jobs/qa_server/monitor_tests_job.rb', line 13

def perform
  Rails.cache.fetch("QaServer::MonitorTestsController/latest_run", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 5.minutes, force: true) do
    job_id = SecureRandom.uuid
    monitor_tests_job_id = job_id unless monitor_tests_job_id
    if monitor_tests_job_id == job_id # avoid race conditions
      QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) RUNNING monitoring tests")
      validate(authorities_list)
      scenario_run_registry_class.save_run(scenarios_results: status_log.to_a)
      QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) COMPLETED monitoring tests")
      reset_monitor_tests_job_id
    end
    scenario_run_registry_class.latest_run
  end
end