Module: Itsi::Server::SchedulerInterface
- Included in:
- Itsi::Server
- Defined in:
- lib/itsi/server/scheduler_interface.rb
Instance Method Summary collapse
-
#schedule(app, request) ⇒ Object
When running in scheduler mode, each request is wrapped in a Fiber.
-
#start_scheduler_loop(scheduler_class, scheduler_task) ⇒ Object
Simple wrapper to instantiate a scheduler, start it, and immediate have it invoke a scheduler proc.
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.) 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 |