I see a lot of documentation on scheduling Apex to run repeatedly (i.e. every day at 1am), or even run once at a specific point in time, but I don't see anything about dynamically scheduling Apex to run, for example, 5 or 10 minutes from now.
My use case is that our Salesforce org will be receiving messages from an external system at random times, and every time it does, we need to store a token from that system, and pass it to a single scheduled Apex class that will run an hour later. So each class will be running with a different parameter, and at random points in time.
My first thought is that one could try to use system.now() and a Cron expression (i.e. String sch = '20 30 8 10 2 ?') to dynamically generate a Cron expression for each job that is scheduled, but that seems overly complicated.
Is there a way to simply specify in Apex "run this five minutes from now?"