NAME
JobRunner::Worker - Async job execution engine
DESCRIPTION
Polls the job queue and executes jobs asynchronously up to a configurable concurrency limit.
Usage
use JobRunner::Worker qw(start_worker stop_worker get_worker_stats);
# Start worker with max 3 concurrent jobs
start_worker($loop, 3);
# Get worker status
my $stats = get_worker_stats();
# { active => 2, capacity => 3, processed => 15, is_running => 1 }
# Stop worker (wait for current jobs to finish)
stop_worker();