Module: Itsi::Server::SchedulerInterface

Included in:
Itsi::Server
Defined in:
lib/itsi/server/scheduler_interface.rb

Instance Method Summary collapse

Instance Method Details

#schedule(app, request) ⇒ Object

When running in scheduler mode, each request is wrapped in a Fiber.



14
15
16
17
18
19
20
# File 'lib/itsi/server/scheduler_interface.rb', line 14

def schedule(app, request)
  Fiber.schedule do
    app.call(request)
  rescue StandardError => e
    request.server_error(e.message)
  end
end

#start_scheduler_loop(scheduler_class, scheduler_task) ⇒ Object

Simple wrapper to instantiate a scheduler, start it, and immediate have it invoke a scheduler proc



6
7
8
9
10
# File 'lib/itsi/server/scheduler_interface.rb', line 6

def start_scheduler_loop(scheduler_class, scheduler_task)
  scheduler = scheduler_class.new
  Fiber.set_scheduler(scheduler)
  [scheduler, Fiber.schedule(&scheduler_task)]
end