module Motor::Configs::WriteToFile

Constants

THREAD_POOL

Public Instance Methods

call() click to toggle source
# File lib/motor/configs/write_to_file.rb, line 10
def call
  return if Rails.env.test?
  return if THREAD_POOL.queue_length.positive?

  THREAD_POOL.post do
    ActiveRecord::Base.logger.silence do
      write_with_lock
    end
  rescue StandardError => e
    Rails.logger.error(e)
  end
end
write_with_lock() click to toggle source
# File lib/motor/configs/write_to_file.rb, line 23
def write_with_lock
  File.open(Motor::Configs.file_path, 'w') do |file|
    file.flock(File::LOCK_EX)

    YAML.dump(Motor::Configs::BuildConfigsHash.call, file)

    file.flock(File::LOCK_UN)

    file
  end.close
end