Você pode executar um trabalho em um horário específico com Delayed Job sem passar pela função de identificador de forma assíncrona:
YourClass.delay(run_at: 5.hours.from_now).method
E voila! Ele funcionará 5 horas a partir do horário designado. Porém, lembre-se de que o horário do DelayedJob está em UTC!