I am looking for a generic asynchronous Java job execution framework that could handle Callable
s or Runnable
s. It would be similar to java.util.concurrent.ExecutorService
, (and possibly wrap ExecutorService
), but it would also have the following features:
The ability to persist jobs to a database in case the application goes down while a job is being serviced, and be able to restart the unfinished jobs. (I understand that my job may have to implement
Serializable
which is OK.)Work with UUIDs to enable the client to obtain job tokens and inquire about job status. (Under the hood this information would be persisted to a database, as well.)
I have started working on this myself by building around ExecutorService
, but I would prefer an out of the box, open source solution, if one exists.
Something that could work within the Spring Framework would be ideal.