Skip to content

Instantly share code, notes, and snippets.

@mike-neck
Created December 31, 2011 14:40
Show Gist options
  • Save mike-neck/1544167 to your computer and use it in GitHub Desktop.
Save mike-neck/1544167 to your computer and use it in GitHub Desktop.
あけおめ2012 #バルス
@Grab(group='quartz', module='quartz', version='1.5.2')
@Grab(group='org.twitter4j', module='twitter4j-core', version='2.2.5')
import org.quartz.*
import org.quartz.impl.StdSchedulerFactory
import twitter4j.TwitterFactory
import twitter4j.Twitter
Twitter.metaClass.define {
akeome {
return {
delegate.updateStatus('#あけおめ #2012 #バルス')
}
}
}
class Akeome implements Job {
@Override void execute(JobExecutionContext context){
context.jobDetail.jobDataMap.each { key, task ->
println key
task()
}
}
}
JobDetail.metaClass.define {
job {String nm ->
delegate.name = nm
delegate
}
does {Class cls ->
delegate.jobClass = cls
delegate
}
}
CronTrigger.metaClass.define {
cron {String nm ->
delegate.name = nm
delegate
}
when {String exp ->
delegate.cronExpression = exp
delegate
}
}
def twitter = TwitterFactory.singleton
def jobs = new JobDetail().job('akeome').does(Akeome.class)
def map = jobs.getJobDataMap()
map << ['akeome' : twitter.akeome()]
def cron = new CronTrigger().cron('cron').when('0 0 0 1 1 ?')
def schedule = new StdSchedulerFactory().getScheduler()
schedule.start()
schedule.scheduleJob(jobs, cron)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment