Java 将Cron作业计划为触发月的第一天--除非它';星期天
我希望它在每个月的第一天解雇一份工作,这应该是任何一周的一天。但如果是星期天,就不要解雇工作,只是推迟到第二天解雇,并立即终止计划。 同样,在接下来的几个月也要做同样的安排 下面是每55秒安排一次测试环境的代码,销毁方法如何Java 将Cron作业计划为触发月的第一天--除非它';星期天,java,cron,scheduled-tasks,quartz-scheduler,Java,Cron,Scheduled Tasks,Quartz Scheduler,我希望它在每个月的第一天解雇一份工作,这应该是任何一周的一天。但如果是星期天,就不要解雇工作,只是推迟到第二天解雇,并立即终止计划。 同样,在接下来的几个月也要做同样的安排 下面是每55秒安排一次测试环境的代码,销毁方法如何 QuartzPlugin.java public class QuartzPlugin implements PlugIn { @Override public void destroy() { } @Override publ
QuartzPlugin.java
public class QuartzPlugin implements PlugIn {
@Override
public void destroy() {
}
@Override
public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
// define the job and tie it to our MyJob class
JobDetail job = JobBuilder.newJob(SchedulerJob.class).withIdentity("anyJobName", "group1").build();
try {
// Cron Trigger the job to run now, and then repeat every 55 secs
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("anyTriggerName", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/55 * * * * ?"))
//Every 1 minute "0 0/1 * 1/1 * ? *"
// Every 55 Sec "0/55 * * * * ?"
// Every 5 Sec "0/5 * * * * ?"
// Every month 1st day "0 10 1-7 * *"
.build();
// Grab the Scheduler instance from the Factory
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
// and start it off
scheduler.start();
// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
SchedularJob.java
public class SchedulerJob implements Job {
private ArrayList mapList = new ArrayList();
private DAO dao = new DAO();
private HSSFWorkbook workbook = new HSSFWorkbook();
private FileOutputStream fileOut = null;
public void execute(JobExecutionContext context) throws JobExecutionException {
String dirpath = System.getProperty("user.dir").replaceAll("bin", "") + "webapps/it_email/sent/email_"
+ new SimpleDateFormat("dd-MM-yyyy").format(new Date());
String genStatus = generateExcel(dirpath);
System.out.println("genStatus::" + genStatus);
if (genStatus.equals("Y")) {
String text = "Please find attached case list dated "
+ new SimpleDateFormat("dd-MM-yyyy").format(new Date()) + "."
+ "\n\n Microsoft Excel is required to open this attachment.\n\n"
+ "Registrar Judicial,High Court of Judicature at Hyderabad.\n\n"
+ "This email is System generated. Please do not reply to this email ID.\n\n "
+ "Disclaimer:The NIC/High Court is not responsible for non-delivery of emails.";
String subject = "HIGH COURT:Availability of Case Data.";
String to = "ajaythakur2014@gmail.com";
String filetype = ".xls";
sendEmail(to, subject, text, dirpath, filetype);
System.out.println("For every 55 secs");
}
}
当上面的代码运行时,我偶尔会得到
Oracle 9i生产环境:IO异常:网络适配器无法建立连接
我想每55秒创建更多的新连接。此链接可能有用,其中有官方文档:您尝试在每个月的第一天安排工作的代码是什么?你做了哪些修改来避免它在周日运行?您包含的代码用于计划每55秒运行一次的作业,这与您的问题无关。请包括您实际问题的代码。我尝试每隔一段时间执行此操作,但我关心的是在特定时间段开始和停止。仍然没有与您的问题相关的代码。