JobRunr just published a detailed integration guid...
# general
j
JobRunr just published a detailed integration guide for Apache Grails + a full working sample app: 🔗 https://www.jobrunr.io/en/guides/jvm-frameworks/grails/ 🔗 https://github.com/iNicholasBE/grails-jobrunr Why this matters: Most teams still default to Quartz because “that’s what we’ve always used.” Quartz went pretty quiet around 2021 and only really came back to life in the last couple of years, so a lot of people just stuck with the familiar option. While Quartz remains solid and familiar, JobRunr offers a compelling modern alternative for teams that want something simpler and more developer-friendly: - Much simpler API (especially with the JobRequest pattern for Groovy) - Built-in dashboard out of the box - Easier distributed setup + retries - Designed with distributed/cloud-native use cases in mind - Uses your existing database (GORM-friendly with a bit of wiring) The guide walks through the Grails/GORM gotchas (DataSource wiring, lambdas, etc.) and the sample app demonstrates fire-and-forget, scheduled, recurring jobs, progress tracking, and the dashboard. Worth a look for any new scheduled-job work.
partygrails 1
🚢 1
https://www.linkedin.com/feed/update/urn:li:share:7462146810606850048/ https://x.com/grailsframework/status/2056379686150631545 https://www.reddit.com/r/grails/comments/1thkc1m/new_guide_integrating_jobrunr_background_jobs/ https://www.reddit.com/r/groovy/comments/1thkgw8/why_backgroundjobenqueue_does_not_compile_to_what/ https://www.linkedin.com/feed/update/urn:li:activity:7462468910441811968 https://x.com/JobRunr/status/2056703648835555539 https://bsky.app/profile/jobrunr.bsky.social/post/3mm7d4of3hd24 And JobRunr is working on updating their example based on the following And a workaround for the closure/lambda issue, I think. // JobRunr requires a JobLambda (Java functional interface) — Groovy closures don't work jobScheduler.enqueue((JobLambda) (() -> processEvent(payload))) // The () -> ... is a real Java lambda (Groovy 4 supports the Java arrow form). The (JobLambda) cast disambiguates the overload set so // the compiler emits a LambdaMetafactory-based SAM, not a Closure. This compiles cleanly under @GrailsCompileStatic.