We use quartz (2.3.2) in a java application with a postgres jdbc job store.
When a job is deleted by calling org.quartz.core.QuartzScheduler#deleteJob, it will remove its triggers by calling resources.getJobStore().removeTrigger(triggerKey)
. This in turn will first try to acquire a lock named TRIGGER_ACCESS
before progressing. See the implementation here.
I want to avoid this because I have a high contention adding and removing jobs.
I understand the need to lock before executing the job. However, I fail to understand the need to acquire the lock to remove the job.
Note: I already remove the need to acquire the lock at insert time by configuring quartz with the following property:
org.quartz.jobStore.lockOnInsert=false