Parece que cumple con tus necesidades: jobs can be run job once, randomly or if missed - once at start
Y a malas pues si sabes java te coges el http://www.quartz-scheduler.org/ y un MySQL y te lo picas tu a pelo xDDD (parece mucho pero si sabes de java y de bases de datos en un día lo tienes montado, que yo lo hice como parte de mi proyecto de fin de carrera )