quartz-mongodb
quartz-mongodb copied to clipboard
quartz-mongodb 2.2.0-rc2: checkInErrorHandler — something is missing
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:
MongoDBJobStore#initializereadsquartz-propertiesinto local variablepropshttps://github.com/michaelklishin/quartz-mongodb/blob/91256434fc8ffff15cd60c8541ed3a4bbb59ba4f/src/main/java/com/novemberain/quartz/mongodb/MongoDBJobStore.java#L112- These
propsare passed intoMongoStoreAssembler#build(and nowhere else) https://github.com/michaelklishin/quartz-mongodb/blob/91256434fc8ffff15cd60c8541ed3a4bbb59ba4f/src/main/java/com/novemberain/quartz/mongodb/MongoDBJobStore.java#L114 - Then these props are passed into
MongoStoreAssembler#createCheckinExecutor(and nowhere else) https://github.com/michaelklishin/quartz-mongodb/blob/91256434fc8ffff15cd60c8541ed3a4bbb59ba4f/src/main/java/com/novemberain/quartz/mongodb/MongoStoreAssembler.java#L81
Now to the strange things:
createCheckinExecutorignores these props and callscreateCheckinTask(without passing props) https://github.com/michaelklishin/quartz-mongodb/blob/91256434fc8ffff15cd60c8541ed3a4bbb59ba4f/src/main/java/com/novemberain/quartz/mongodb/MongoStoreAssembler.java#L87createCheckinTaskdecides which error handler to use based on a value returned byMongoDBJobStore#getCheckInErrorHandlerhttps://github.com/michaelklishin/quartz-mongodb/blob/91256434fc8ffff15cd60c8541ed3a4bbb59ba4f/src/main/java/com/novemberain/quartz/mongodb/MongoStoreAssembler.java#L95-L100
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.
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.
@WakeCaine ,
why are you so sure that this repo is abandoned ?
@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.