enragedginger / akka-quartz-scheduler

Quartz Extension and utilities for cron-style scheduling in Akka
Other
559 stars 114 forks source link

How to implement a Persistent Scheduler ? #87

Closed obaidsalikeen closed 3 years ago

obaidsalikeen commented 5 years ago

We have a use-case where a step in a flow needs to wait for 3-5 days for an action to take place (We have a Graph of actors which are executed one after another). Similar to a business process, you might have steps that need to wait (like requesting an approval from a human etc).

Would you recommend akka-quartz-scheduler for this use-case? Also, if the application restarts after a crash, will akka-quartz-scheduler know what was the previous state? Or it will re-start all jobs? Is there any other mechanism to build a persistent scheduler?

enragedginger commented 5 years ago

Hello @obaidsalikeen,

People have asked about this before (#22). akka-quartz-scheduler will ensure that your job fires at the right time after it is scheduled. However, if your application fails for some reason, you'll need custom application logic to handle rescheduling the jobs.

Behind the scenes, akka-quartz-scheduler is using Quartz's RAMJobStore. You could look into trying to swap this out for something else: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/configuration/

felipebonezi commented 3 years ago

@obaidsalikeen did you implement your own logic or uses any other Job Store?

BTW, issue #85 can help with some infos like a Redis Job Store.

enragedginger commented 3 years ago

Closing for now. Feel free to re-open