michaelklishin / quartz-mongodb

A MongoDB-based store for the Quartz scheduler. This fork strives to be as feature complete as possible. Originally by MuleSoft.
Other
249 stars 203 forks source link

quartz-mongodb 2.2.0-rc2: checkInErrorHandler — something is missing #226

Open gagarski opened 3 years ago

gagarski commented 3 years ago

I am trying to update quartz-mongodb in our project. Unfortunately we had to do some monkey-patching around quartz-mongodb code so I took some look into quartz-mongodb code and noticed the following strange things about setting custom checkInErrorHandler:

Now to the strange things:

The thing is that setCheckInErrorHandler is never called by anyone.

So, properties are being read for no reason and checkInErrorHandler class is based chosen based on a value which is effectively constant. Seems like something here is missing.

WakeCaine commented 2 years ago

This repo is abandoned. I do recommend switching to SQL based Quartz from Spring. We tried to use this connector in our project but there has been too many problems with actual optimization and speed even on single instance. Switching to SQL version resolved it and allowed for correct multithreading speed.

rfelgent commented 2 years ago

@WakeCaine ,

why are you so sure that this repo is abandoned ?

wakymak commented 2 years ago

@WakeCaine ,

why are you so sure that this repo is abandoned ?

Main maintainer/creator stopped contributions and did not refresh official artifact. Bintray is no longer with us. Additionally there are still persisting problems not only with transactions but also cluster mode. Not saying this didnt have potential but we would need somebody to actually work and improve this and for now SQL version is a lot faster and more stable. I wanted to keep using this but it failed my expectations.

alebastrov commented 8 months ago

just create a new class

package xxx;
public class FixedMongoDBJobStore extends MongoDBJobStore {
    public String getCheckInErrorHandler() {
        return NoOpErrorHandler.class.getCanonicalName();
    }
}

and pass its name to quartz.properties instead of

#org.quartz.jobStore.class=com.novemberain.quartz.mongodb.MongoDBJobStore
org.quartz.jobStore.class=xxx.FixedMongoDBJobStore