This will instantiate a new worker on each message, when it's likely that the worker type won't change very often. What about having:
    
    def initialize
      @default_worker = Messenger.config.worker_type
    end

and then in `def work` using that default instance whenever `type` is nil?