Short answer: immediately.
Longer answer: it depends.
If there are no jobs in the queue and you add a job to the queue it can take up to 5 seconds for the job to run. This is configured by Delayed::Worker.sleep_delay and is set to 5 by default. How this works in practice, is that the worker tries checks the DB for something to do, if nothing is found the process sleeps for sleep_delay seconds, and then checks again.
If the worker is already working on a job, the new job will get run when all jobs in front of it in the queue are done.
David Genord II