I need to run background tasks at arbitrary points in the future, with queue behavior if multiple execute at or near the same time, ability to manipulate the task list, retry (ideally with exponentially longer retry window), etc.
In Ruby, there is delayed_job (and php port djjob), which does this pretty much perfectly.
The closest Perl solution I could find was Beanstalk::Job, but this doesn't appear to support execution in the "far future" (next week). There is also Schedule::At, which does (and also allows manipulation of the tasks) but it runs external commands and the jobs appear to be executed straight with no queueing mechanism
Is there something that's more like delayed_job? Do I need to roll my own?
Also: beanstalkd appears to be memory resident, mostly, and I'd prefer to have a db/disk backed queue