32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/openc3/microservices/periodic_microservice.rb', line 32
def run
@run_sleeper = Sleeper.new
return if @run_sleeper.sleep(STARTUP_DELAY_SECONDS)
while true
models = OfflineAccessModel.get_all_models(scope: @scope)
models.each do |name, model|
if model.offline_access_token
auth = OpenC3KeycloakAuthentication.new(ENV['OPENC3_KEYCLOAK_URL'])
valid_token = auth.get_token_from_refresh_token(model.offline_access_token)
if valid_token
@logger.info("Refreshed offline access token for #{name}")
model.offline_access_token = auth.refresh_token
else
@logger.error("Unable to refresh offline access token for #{name}")
model.offline_access_token = nil
end
model.update
end
end
@count += 1
@metric.set(name: 'periodic_total', value: @count, type: 'counter')
break if @cancel_thread
break if @run_sleeper.sleep(SLEEP_PERIOD_SECONDS)
end
end
|