Git Product home page Git Product logo

grails-quartz's Introduction

Grails Quartz Plugin

Quartz plugin allows your Grails application to schedule jobs to be executed using a specified interval or cron expression. The underlying system uses the Quartz Enterprise Job Scheduler configured via Spring, but is made simpler by the coding by convention paradigm.

Installation

To install the latest stable version of the plugin run:

grails install-plugin quartz

Using

Scheduling Jobs

To create a new job run the “grails create-job” command and enter the name of the job. Grails will create a new job and place it in the “grails-app/jobs” directory:

class MyJob {
  static triggers = {
    simple repeatInterval: 1000
  }

  def execute(){
    print "Job run!"
  }
}

The above example will call the ‘execute’ method every second.

Scheduling configuration syntax

Currently plugin supports three types of triggers:

  • simple trigger — executes once per defined interval (ex. “every 10 seconds”);

  • cron trigger — executes job with cron expression (ex. “at 8:00am every Monday through Friday”);

  • custom trigeer — your implementation of Trigger interface.

Multiple triggers per job are allowed.

class MyJob {
  static triggers = {
    simple name:'simpleTrigger', startDelay:10000, repeatInterval: 30000, repeatCount: 10
    cron name:'cronTrigger', startDelay:10000, cronExpression: '0/6 * 15 * * ?'
    custom name:'customTrigger', triggerClass:MyTriggerClass, myParam:myValue, myAnotherParam:myAnotherValue
  }

  def execute() {
    println "Job run!"
  }
}

With this configuration job will be executed 11 times with 30 seconds interval with first run in 10 seconds after scheduler startup (simple trigger), also it’ll be executed each 6 second during 15th hour (15:00:00, 15:00:06, 15:00:12, … — this configured by cron trigger) and also it’ll be executed each time your custom trigger will fire.

Three kinds of triggers are supported with the following parameters:

  • simple:

    • name — the name that identifies the trigger;

    • startDelay — delay (in milliseconds) between scheduler startup and first job’s execution;

    • repeatInterval — timeout (in milliseconds) between consecutive job’s executions;

    • repeatCount — trigger will fire job execution (1 + repeatCount) times and stop after that (specify 0 here to have one-shot job or -1 to repeat job executions indefinitely);

  • cron:

    • name — the name that identifies the trigger;

    • startDelay — delay (in milliseconds) between scheduler startup and first job’s execution;

    • cronExpressioncron expression

  • custom:

    • triggerClass — your class which implements Trigger interface;

    • any params needed by your trigger.

grails-quartz's People

Contributors

nebolsin avatar pledbrook avatar marcpalmer avatar

Stargazers

Matías Waisgold avatar

Watchers

Matías Waisgold avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.