You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm looking for some general guidance on using Quartz in a clustered environment.
I wanted to sanity check a solution for running a high number of nightly jobs within an AWS Fargate Task with several instances (autoscaled) co-ordinated using Quartz and JDBCJobStore.
We want to implement a batch operation that runs nightly to purge expired tenant data. We have 1000s of tenants and each needs expired registrations to be purged. Since this is new functionality some of the tenant purging will take days or weeks to purge several years worth of accumulated data but after this initial purge, the jobs should take minutes or hours per tenant per night.
We have some very large tenants that will probably need dedicated jobs/threads and smaller tenants that could be grouped into a single job. The jobs will need to be configured on a tenant basis so that we can control how long we keep registrations for an individual customer.
If we define the jobs programatically, do they need to be defined in one single instance or what happens when all of the instances try to create the same jobs - does clustered implementation using JDBCJobStore prevent duplicate jobs from being created? How does this work if we define the jobs in XML and use the XMLSchedulingDataProcessorPlugin.
Also, since initially, the jobs will take days to run, we need to handle container recycling - so will .requestRecovery() handle that?
i.e. JobDetail job = newJob(SimpleJob.class).withIdentity("job" + count, "group_1").requestRecovery()
Does the data in the JobStore database grow over time or is it used only to coordinate the jobs?
Are there any other considerations we should take into account with this approach?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Hi,
I'm looking for some general guidance on using Quartz in a clustered environment.
I wanted to sanity check a solution for running a high number of nightly jobs within an AWS Fargate Task with several instances (autoscaled) co-ordinated using Quartz and JDBCJobStore.
We want to implement a batch operation that runs nightly to purge expired tenant data. We have 1000s of tenants and each needs expired registrations to be purged. Since this is new functionality some of the tenant purging will take days or weeks to purge several years worth of accumulated data but after this initial purge, the jobs should take minutes or hours per tenant per night.
We have some very large tenants that will probably need dedicated jobs/threads and smaller tenants that could be grouped into a single job. The jobs will need to be configured on a tenant basis so that we can control how long we keep registrations for an individual customer.
If we define the jobs programatically, do they need to be defined in one single instance or what happens when all of the instances try to create the same jobs - does clustered implementation using JDBCJobStore prevent duplicate jobs from being created? How does this work if we define the jobs in XML and use the XMLSchedulingDataProcessorPlugin.
Also, since initially, the jobs will take days to run, we need to handle container recycling - so will
.requestRecovery()handle that?i.e. JobDetail job = newJob(SimpleJob.class).withIdentity("job" + count, "group_1").requestRecovery()
Does the data in the JobStore database grow over time or is it used only to coordinate the jobs?
Are there any other considerations we should take into account with this approach?
Thank you!
All reactions