title: Quartz retry job with exponentially increasing delay time strategy for trigger
body: <p>I use quartz in spring project. The idea is to create separate job for new income data, that was not delivered successfully to target service.</p>
  
  <ul>
  <li>To deliver data with exponentially increasing strategy I create job for next unsuccessful tries also. (It spams DB. It seems works, but can be better.)</li>
  <li>different my solution is to create repeatable crone based job, that scans DB data and loads only date should be handled now because time passed (in this case I have to manage a lot of on java part).</li>
  </ul>
  
  <h2>Both ways can provide correct flow, but I prefer out the box solution.</h2>
  
  <p>I tried to manage <code>JobExecutionContext</code> of triggered job to use same <code>JobDetail</code> registering it in <code>quartzScheduler</code>. The idea was to update existing job with different trigger. But issue is quartz tries to create new job persisting it in DB.</p>
  
  <pre><code>org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'digex-caas-securepay.b333e5bf-583f-4643-9ad7-ef4b913001f7', because one already exists with this identification.
      at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1113) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1067) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3765) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3763) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:245) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1063) ~[quartz-2.3.0.jar:na]
      at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:855) ~[quartz-2.3.0.jar:na]
      at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:249) ~[quartz-2.3.0.jar:na]
      at com.incomm.ecomm.services.quartz.OrderQuartzJobScheduler.registerSecurePayPostServiceJob(OrderQuartzJobScheduler.java:59) ~[classes/:na]
  </code></pre>
  
  <h2>Questions are (please answer any):</h2>
  
  <ul>
  <li>How to manage via quartz job trigger updates (in case it was not handled successfully - update trigger with different fired time)?</li>
  <li>How to manage via quartz job updates (in case it was not handled successfully - update job with new trigger)?</li>
  <li>How to register exponentially increasing delay time strategy for trigger?</li>
  </ul>