Sha256: a0a6d17361dcf9421730ebd56f7505b3909aad41ef1b384275f75b381b9018a1
Contents?: true
Size: 533 Bytes
Versions: 16
Compression:
Stored size: 533 Bytes
Contents
description 'Background worker' require 'thread' module Worker @queue = Queue.new def self.start Thread.new do loop do begin user, task = @queue.pop User.current = user task.call rescue => ex Olelo.logger.error(ex) ensure User.current = nil end end end end def self.jobs @queue.length end def self.defer(&block) @queue << [User.current, block] end end setup do Worker.start end Olelo::Worker = Worker
Version data entries
16 entries across 16 versions & 1 rubygems