国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在play framework 1.x中,自定義cron執行實現

2019-11-06 06:40:23
字體:
來源:轉載
供稿:網友

在play framework 1.x中,可以使用@on注解來讓定時器在某個時間段自動執行,如:

@On("0 0 12 * * ?")public class MyJob extends Job{public void doJob() { //業務邏輯 }}

如果我們需要在@On之前做業務邏輯操作,可以:

1、JobScheduler.java

import java.util.Date;import java.util.concurrent.Callable;import java.util.concurrent.TimeUnit;import models.Partner;import play.Logger;import play.jobs.Job;import play.jobs.JobsPlugin;import play.libs.ExPRession;import play.libs.Time.CronExpression;public class JobScheduler { public static synchronized void scheduleCsvExportJob(String cron) { MyJob myJob = null; for (Job<?> job : JobsPlugin.scheduledJobs) { if (job instanceof MyJob) { myJob = (MyJob) job; } } if (myJob == null) { myJob = new MyJob(); JobsPlugin.scheduledJobs.add(myJob); } myJob.cron = cron; scheduleForCRON(myJob, myJob.cron); } public static void scheduleForCRON(MyJob job, String cron) { try { Date now = new Date(); cron = Expression.evaluate(cron, cron).toString(); CronExpression cronExp = new CronExpression(cron); Date nextDate = cronExp.getNextValidTimeAfter(now); if (nextDate != null && !nextDate.equals(job.nextPlannedExecution)) { job.nextPlannedExecution = nextDate; JobsPlugin.executor.schedule((Callable<?>) job, nextDate.getTime() - now.getTime(), TimeUnit.MILLISECONDS); job.setExecutor(JobsPlugin.executor); } } catch (Exception ex) { Logger.error(ex, "Cannot schedule job %s", job); } }}

2、然后編寫自己的定時器進行調用: MyJob.java:

package jobs;import java.util.Date;import java.util.concurrent.ExecutorService;import play.jobs.Job;public class MyJob extends Job<Object> { public Date nextPlannedExecution = null; public String cron = null; @Override public void _finally() { if (cron != null) { // 如果cron不為null再執行 super._finally(); // 執行自定義的定時器時間進行任務調度 JobScheduler.scheduleForCRON(this, cron); } } void setExecutor(ExecutorService executor) { this.executor = executor; }}

注:play framework 1.x中的@On(“0 0 12 * * ?”)注解使用的是cron表達式。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中超| 琼结县| 互助| 望奎县| 玉树县| 龙岩市| 错那县| 靖西县| 青铜峡市| 铁岭市| 龙里县| 宁城县| 蓝山县| 封丘县| 志丹县| 澎湖县| 石屏县| 西乌| 霍城县| 安塞县| 萨迦县| 舞钢市| 建昌县| 牙克石市| 遵化市| 集贤县| 大同县| 田林县| 客服| 龙山县| 南投县| 彝良县| 安远县| 普定县| 南投市| 板桥市| 峨眉山市| 惠东县| 林口县| 珲春市| 东阳市|