I would start with spring's TaskScheduler:
But no matter what you use you're going to have to write a non-trivial amount code to support all of this. You'll have to support things like loading all tasks on server startup, ensuring tasks only run on one server (if the app is deployed to multiple glassshish instances), monitoring DB table for deleted users/jobs, etc.