Persistent delayed jobs queue for Java
<p>I'm looking for an existing system to replace an existing slow and complicated self written mechanism of job management.
The existing system:</p>

<ul>
<li>1 MySQL DB with a long massive table of jobs - the queue</li>
<li>Multiple servers (written in java) all extracting jobs from the queue and processing them</li>
<li>a job might NOT be deleted from the queue after processing it, to rerun it later</li>
<li>a job might create other jobs and insert them to the queue</li>
</ul>

<p>The limitations:</p>

<ul>
<li>As more and more jobs are created and inserted in to the queue, it takes longer to extract jobs from it. (The jobs are chosen by priority and type) - create a bottle neck</li>
</ul>

<p>I'm looking for an existing system that can replace this one, and improve it's performance.
Any suggestions?</p>

<p>Thanks</p>
