Sha256: a9dcb3ac389afb217d4fffe35acf45bdb8d4cb9be5b9c88930b3e3c0ef17a849

Contents?: true

Size: 600 Bytes

Versions: 1

Compression:

Stored size: 600 Bytes

Contents

# frozen_string_literal: true

require 'singleton'
require 'async/redis'
require_relative 'worker'
require_relative 'scheduler'

module Quiq
  class Server
    include Singleton

    def run!
      # Launch one worker per queue
      Quiq.queues.each do |queue|
        fork { Worker.new(queue).start }
      end

      # Launch scheduler for jobs to be performed at certain time
      fork { Scheduler.instance.start }

      # Set the process name
      Process.setproctitle("quiq master #{Quiq.configuration.path}")

      # TODO: handle graceful shutdowns
      Process.waitall
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quiq-0.2.0 lib/quiq/server.rb