Consider moving
if Params ['enable_monitoring']
  ...
end

Inside a function, because you use it in so many places....

This code can look like this:

pop_queue = @local_queue.pop
process_vars.update_queue('File Copy Client queue', @local_queue)

While in global.rb you will do:

$process_vars = ThreadSafeHash::ThreadSafeHash.new
$process_vars.define_singleton_method(:update_queue) { |name, queue|
  if Params['enable_monitoring']
    $process_vars.set(name, queue.size)
  end
}