Sha256: c266a14edc7854c8a720449167526eaeb1662ffb8f5315232c0e8d0604f95390
Contents?: true
Size: 1.48 KB
Versions: 19
Compression:
Stored size: 1.48 KB
Contents
# encoding: ascii-8bit require 'openc3/microservices/microservice' require 'openc3/api/api' module OpenC3 class <%= microservice_class %> < Microservice include Api # Provides access to api methods def initialize(name) super(name) @config['options'].each do |option| # Update with your own OPTION handling case option[0].upcase when 'PERIOD' @period = option[1].to_i else @logger.error("Unknown option passed to microservice #{@name}: #{option}") end end @period = 60 unless @period # 1 minutes @sleeper = Sleeper.new end def run while true start_time = Time.now break if @cancel_thread # Do your microservice work here @logger.info("Template Microservice ran") # cmd("INST ABORT") # The @state variable is set to 'RUNNING' by the microservice base class # The @state is reflected to the user in the MICROSERVICES tab so you can # convey long running actions by changing it, e.g. @state = 'CALCULATING ...' run_time = Time.now - start_time delta = @period - run_time if delta > 0 # Delay till the next period break if @sleeper.sleep(delta) # returns true and breaks loop on shutdown end @count += 1 end end def shutdown @sleeper.cancel # Breaks out of run() super() end end end OpenC3::<%= microservice_class %>.run if __FILE__ == $0
Version data entries
19 entries across 19 versions & 1 rubygems