正在显示
17 个修改的文件
包含
651 行增加
和
0 行删除
.idea/compiler.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project version="4"> | ||
| 3 | + <component name="CompilerConfiguration"> | ||
| 4 | + <annotationProcessing> | ||
| 5 | + <profile name="Maven default annotation processors profile" enabled="true"> | ||
| 6 | + <sourceOutputDir name="target/generated-sources/annotations" /> | ||
| 7 | + <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> | ||
| 8 | + <outputRelativeToContentRoot value="true" /> | ||
| 9 | + <module name="QuartzTest" /> | ||
| 10 | + </profile> | ||
| 11 | + </annotationProcessing> | ||
| 12 | + </component> | ||
| 13 | +</project> |
.idea/misc.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project version="4"> | ||
| 3 | + <component name="ExternalStorageConfigurationManager" enabled="true" /> | ||
| 4 | + <component name="MavenProjectsManager"> | ||
| 5 | + <option name="originalFiles"> | ||
| 6 | + <list> | ||
| 7 | + <option value="$PROJECT_DIR$/pom.xml" /> | ||
| 8 | + </list> | ||
| 9 | + </option> | ||
| 10 | + </component> | ||
| 11 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_10" project-jdk-name="10" project-jdk-type="JavaSDK"> | ||
| 12 | + <output url="file://$PROJECT_DIR$/out" /> | ||
| 13 | + </component> | ||
| 14 | +</project> |
.idea/uiDesigner.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project version="4"> | ||
| 3 | + <component name="Palette2"> | ||
| 4 | + <group name="Swing"> | ||
| 5 | + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 6 | + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> | ||
| 7 | + </item> | ||
| 8 | + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 9 | + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> | ||
| 10 | + </item> | ||
| 11 | + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 12 | + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> | ||
| 13 | + </item> | ||
| 14 | + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true"> | ||
| 15 | + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> | ||
| 16 | + </item> | ||
| 17 | + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 18 | + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> | ||
| 19 | + <initial-values> | ||
| 20 | + <property name="text" value="Button" /> | ||
| 21 | + </initial-values> | ||
| 22 | + </item> | ||
| 23 | + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 24 | + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> | ||
| 25 | + <initial-values> | ||
| 26 | + <property name="text" value="RadioButton" /> | ||
| 27 | + </initial-values> | ||
| 28 | + </item> | ||
| 29 | + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 30 | + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> | ||
| 31 | + <initial-values> | ||
| 32 | + <property name="text" value="CheckBox" /> | ||
| 33 | + </initial-values> | ||
| 34 | + </item> | ||
| 35 | + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 36 | + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> | ||
| 37 | + <initial-values> | ||
| 38 | + <property name="text" value="Label" /> | ||
| 39 | + </initial-values> | ||
| 40 | + </item> | ||
| 41 | + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 42 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | ||
| 43 | + <preferred-size width="150" height="-1" /> | ||
| 44 | + </default-constraints> | ||
| 45 | + </item> | ||
| 46 | + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 47 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | ||
| 48 | + <preferred-size width="150" height="-1" /> | ||
| 49 | + </default-constraints> | ||
| 50 | + </item> | ||
| 51 | + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 52 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | ||
| 53 | + <preferred-size width="150" height="-1" /> | ||
| 54 | + </default-constraints> | ||
| 55 | + </item> | ||
| 56 | + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 57 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | ||
| 58 | + <preferred-size width="150" height="50" /> | ||
| 59 | + </default-constraints> | ||
| 60 | + </item> | ||
| 61 | + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 62 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | ||
| 63 | + <preferred-size width="150" height="50" /> | ||
| 64 | + </default-constraints> | ||
| 65 | + </item> | ||
| 66 | + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 67 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | ||
| 68 | + <preferred-size width="150" height="50" /> | ||
| 69 | + </default-constraints> | ||
| 70 | + </item> | ||
| 71 | + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 72 | + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> | ||
| 73 | + </item> | ||
| 74 | + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 75 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | ||
| 76 | + <preferred-size width="150" height="50" /> | ||
| 77 | + </default-constraints> | ||
| 78 | + </item> | ||
| 79 | + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 80 | + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> | ||
| 81 | + <preferred-size width="150" height="50" /> | ||
| 82 | + </default-constraints> | ||
| 83 | + </item> | ||
| 84 | + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 85 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | ||
| 86 | + <preferred-size width="150" height="50" /> | ||
| 87 | + </default-constraints> | ||
| 88 | + </item> | ||
| 89 | + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 90 | + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> | ||
| 91 | + <preferred-size width="200" height="200" /> | ||
| 92 | + </default-constraints> | ||
| 93 | + </item> | ||
| 94 | + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 95 | + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> | ||
| 96 | + <preferred-size width="200" height="200" /> | ||
| 97 | + </default-constraints> | ||
| 98 | + </item> | ||
| 99 | + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true"> | ||
| 100 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> | ||
| 101 | + </item> | ||
| 102 | + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 103 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> | ||
| 104 | + </item> | ||
| 105 | + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 106 | + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> | ||
| 107 | + </item> | ||
| 108 | + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 109 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> | ||
| 110 | + </item> | ||
| 111 | + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 112 | + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> | ||
| 113 | + <preferred-size width="-1" height="20" /> | ||
| 114 | + </default-constraints> | ||
| 115 | + </item> | ||
| 116 | + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false"> | ||
| 117 | + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> | ||
| 118 | + </item> | ||
| 119 | + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> | ||
| 120 | + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> | ||
| 121 | + </item> | ||
| 122 | + </group> | ||
| 123 | + </component> | ||
| 124 | +</project> |
QuartzTest.iml
0 → 100644
pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <modelVersion>4.0.0</modelVersion> | ||
| 6 | + | ||
| 7 | + <groupId>com.lin</groupId> | ||
| 8 | + <artifactId>quartz_test</artifactId> | ||
| 9 | + <version>1.0-SNAPSHOT</version> | ||
| 10 | + | ||
| 11 | + <dependencies> | ||
| 12 | + <dependency> | ||
| 13 | + <groupId>org.quartz-scheduler</groupId> | ||
| 14 | + <artifactId>quartz</artifactId> | ||
| 15 | + <version>2.2.1</version> | ||
| 16 | + </dependency> | ||
| 17 | + | ||
| 18 | + <dependency> | ||
| 19 | + <groupId>org.quartz-scheduler</groupId> | ||
| 20 | + <artifactId>quartz-jobs</artifactId> | ||
| 21 | + <version>2.2.1</version> | ||
| 22 | + </dependency> | ||
| 23 | + | ||
| 24 | + <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl --> | ||
| 25 | + <dependency> | ||
| 26 | + <groupId>org.apache.logging.log4j</groupId> | ||
| 27 | + <artifactId>log4j-slf4j-impl</artifactId> | ||
| 28 | + <version>2.11.0</version> | ||
| 29 | + </dependency> | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + </dependencies> | ||
| 33 | + | ||
| 34 | +</project> |
src/main/java/test1/HelloQuartz.java
0 → 100644
| 1 | +package test1; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | + | ||
| 5 | +import java.util.Date; | ||
| 6 | + | ||
| 7 | +public class HelloQuartz implements Job { | ||
| 8 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 9 | + | ||
| 10 | + JobKey jobKey = context.getJobDetail().getKey(); | ||
| 11 | + System.out.println("jobName = " + jobKey.getName() + ", jobGroup = " + jobKey.getGroup()); | ||
| 12 | + | ||
| 13 | + TriggerKey triggerKey = context.getTrigger().getKey(); | ||
| 14 | + System.out.println("triggerName = " + triggerKey.getName() + ", triggerGroup = " + triggerKey.getGroup()); | ||
| 15 | + | ||
| 16 | + JobDetail detail = context.getJobDetail(); | ||
| 17 | + String name = detail.getJobDataMap().getString("name"); | ||
| 18 | + System.out.println("job detail message is " + name + " at " + new Date()); | ||
| 19 | + | ||
| 20 | + Trigger trigger = context.getTrigger(); | ||
| 21 | + float never = trigger.getJobDataMap().getInt("never"); | ||
| 22 | + System.out.println("trigger message is " + never + " at " + new Date()); | ||
| 23 | + | ||
| 24 | + // 获取将jobDetail和Trigger中JobDataMap()合并后的JobDataMap(), | ||
| 25 | + // 如有重复,trigger中的key会覆盖掉jobDetail中的key | ||
| 26 | + JobDataMap mergedJobDataMap = context.getMergedJobDataMap(); | ||
| 27 | + String name1 = mergedJobDataMap.getString("name"); | ||
| 28 | + int never1 = mergedJobDataMap.getInt("never"); | ||
| 29 | + | ||
| 30 | + System.out.println("mergedJobDataMap message is " + name1 + ", " + never1); | ||
| 31 | + } | ||
| 32 | +} |
src/main/java/test1/QuartzTest.java
0 → 100644
| 1 | +package test1; | ||
| 2 | + | ||
| 3 | +import org.quartz.JobDetail; | ||
| 4 | +import org.quartz.Scheduler; | ||
| 5 | +import org.quartz.SchedulerException; | ||
| 6 | +import org.quartz.Trigger; | ||
| 7 | +import org.quartz.impl.StdSchedulerFactory; | ||
| 8 | + | ||
| 9 | +import static org.quartz.JobBuilder.newJob; | ||
| 10 | +import static org.quartz.SimpleScheduleBuilder.simpleSchedule; | ||
| 11 | +import static org.quartz.TriggerBuilder.newTrigger; | ||
| 12 | + | ||
| 13 | +public class QuartzTest { | ||
| 14 | + | ||
| 15 | + public static void main(String[] args) throws SchedulerException { | ||
| 16 | + try { | ||
| 17 | + //创建scheduler | ||
| 18 | + Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); | ||
| 19 | + | ||
| 20 | + //定义一个JobDetail | ||
| 21 | + JobDetail job = newJob(HelloQuartz.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 22 | + .withIdentity("job1", "group1") //定义name/group | ||
| 23 | + .usingJobData("name", "quartz") //定义属性 | ||
| 24 | + .build(); | ||
| 25 | + | ||
| 26 | + System.out.println("JobDetail name=" + job.getKey().getName()); // job的名字 | ||
| 27 | + System.out.println("JobDetail group=" + job.getKey().getGroup()); // job的组 | ||
| 28 | + System.out.println("JobDetail jobClass=" + job.getJobClass().getName()); // job的类 | ||
| 29 | + | ||
| 30 | + //定义一个Trigger | ||
| 31 | + Trigger trigger = newTrigger() | ||
| 32 | + .withIdentity("trigger1", "group1") //定义name/group | ||
| 33 | + .usingJobData("never", 13) //定义属性 | ||
| 34 | + .startNow()//一旦加入scheduler,立即生效 | ||
| 35 | + .withSchedule(simpleSchedule() //使用SimpleTrigger | ||
| 36 | + .withIntervalInSeconds(1) //每隔一秒执行一次 | ||
| 37 | + .repeatForever()) //一直执行,奔腾到老不停歇 | ||
| 38 | + .build(); | ||
| 39 | + | ||
| 40 | + | ||
| 41 | + //加入这个调度 | ||
| 42 | + scheduler.scheduleJob(job, trigger); | ||
| 43 | + | ||
| 44 | + //启动之 | ||
| 45 | + scheduler.start(); | ||
| 46 | + | ||
| 47 | + //运行一段时间后关闭 | ||
| 48 | + Thread.sleep(10000); | ||
| 49 | + scheduler.shutdown(true); | ||
| 50 | + } catch (Exception e) { | ||
| 51 | + e.printStackTrace(); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | + |
src/main/java/test2/HelloQuartz2.java
0 → 100644
| 1 | +package test2; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | + | ||
| 5 | +import java.util.Date; | ||
| 6 | + | ||
| 7 | +public class HelloQuartz2 implements Job { | ||
| 8 | + | ||
| 9 | + // 通过给变量设置getter和setter,可以自动获取jobDetail和trigger中JobDataMap()中的内容 | ||
| 10 | + private String name; | ||
| 11 | + private Integer never; | ||
| 12 | + | ||
| 13 | + public String getName() { | ||
| 14 | + return name; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public void setName(String name) { | ||
| 18 | + this.name = name; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public Integer getNever() { | ||
| 22 | + return never; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public void setNever(Integer never) { | ||
| 26 | + this.never = never; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 30 | + | ||
| 31 | + System.out.println("job detail message is " + name + " at " + new Date()); | ||
| 32 | + | ||
| 33 | + System.out.println("trigger message is " + never + " at " + new Date()); | ||
| 34 | + } | ||
| 35 | +} |
src/main/java/test2/QuartzTest2.java
0 → 100644
| 1 | +package test2; | ||
| 2 | + | ||
| 3 | +import org.quartz.JobDetail; | ||
| 4 | +import org.quartz.Scheduler; | ||
| 5 | +import org.quartz.SchedulerException; | ||
| 6 | +import org.quartz.Trigger; | ||
| 7 | +import org.quartz.impl.StdSchedulerFactory; | ||
| 8 | + | ||
| 9 | +import static org.quartz.JobBuilder.newJob; | ||
| 10 | +import static org.quartz.SimpleScheduleBuilder.simpleSchedule; | ||
| 11 | +import static org.quartz.TriggerBuilder.newTrigger; | ||
| 12 | + | ||
| 13 | +public class QuartzTest2 { | ||
| 14 | + | ||
| 15 | + public static void main(String[] args) throws SchedulerException { | ||
| 16 | + try { | ||
| 17 | + //创建scheduler | ||
| 18 | + Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); | ||
| 19 | + | ||
| 20 | + //定义一个JobDetail | ||
| 21 | + JobDetail job = newJob(HelloQuartz2.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 22 | + .withIdentity("job1", "group1") //定义name/group | ||
| 23 | + .usingJobData("name", "quartz") //定义属性 | ||
| 24 | + .build(); | ||
| 25 | + | ||
| 26 | + System.out.println("JobDetail name=" + job.getKey().getName()); // job的名字 | ||
| 27 | + System.out.println("JobDetail group=" + job.getKey().getGroup()); // job的组 | ||
| 28 | + System.out.println("JobDetail jobClass=" + job.getJobClass().getName()); // job的类 | ||
| 29 | + | ||
| 30 | + //定义一个Trigger | ||
| 31 | + Trigger trigger = newTrigger() | ||
| 32 | + .withIdentity("trigger1", "group1") //定义name/group | ||
| 33 | + .usingJobData("never", 13) //定义属性 | ||
| 34 | + .startNow()//一旦加入scheduler,立即生效 | ||
| 35 | + .withSchedule(simpleSchedule() //使用SimpleTrigger | ||
| 36 | + .withIntervalInSeconds(1) //每隔一秒执行一次 | ||
| 37 | + .repeatForever()) //一直执行,奔腾到老不停歇 | ||
| 38 | + .build(); | ||
| 39 | + | ||
| 40 | + | ||
| 41 | + //加入这个调度 | ||
| 42 | + scheduler.scheduleJob(job, trigger); | ||
| 43 | + | ||
| 44 | + //启动之 | ||
| 45 | + scheduler.start(); | ||
| 46 | + | ||
| 47 | + //运行一段时间后关闭 | ||
| 48 | + Thread.sleep(10000); | ||
| 49 | + scheduler.shutdown(true); | ||
| 50 | + } catch (Exception e) { | ||
| 51 | + e.printStackTrace(); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | + |
src/main/java/test3/HelloQuartz3.java
0 → 100644
| 1 | +package test3; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | + | ||
| 5 | +import java.text.SimpleDateFormat; | ||
| 6 | +import java.util.Date; | ||
| 7 | + | ||
| 8 | +public class HelloQuartz3 implements Job { | ||
| 9 | + | ||
| 10 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 11 | + | ||
| 12 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 13 | + String dateStr = dateFormat.format(new Date()); | ||
| 14 | + System.out.println("now is " + dateStr); | ||
| 15 | + | ||
| 16 | + Trigger trigger = context.getTrigger(); | ||
| 17 | + System.out.println("Start Time is " + trigger.getStartTime()); | ||
| 18 | + System.out.println("End Time is " + trigger.getEndTime()); | ||
| 19 | + | ||
| 20 | + JobKey jobKey = trigger.getJobKey(); | ||
| 21 | + System.out.println("JobKey info jobName:" + jobKey.getName() + ",jobGroup:" + jobKey.getGroup()); | ||
| 22 | + } | ||
| 23 | +} |
src/main/java/test3/QuartzTest3.java
0 → 100644
| 1 | +package test3; | ||
| 2 | + | ||
| 3 | +import org.quartz.JobDetail; | ||
| 4 | +import org.quartz.Scheduler; | ||
| 5 | +import org.quartz.SchedulerException; | ||
| 6 | +import org.quartz.Trigger; | ||
| 7 | +import org.quartz.impl.StdSchedulerFactory; | ||
| 8 | + | ||
| 9 | +import java.text.SimpleDateFormat; | ||
| 10 | +import java.util.Date; | ||
| 11 | + | ||
| 12 | +import static org.quartz.JobBuilder.newJob; | ||
| 13 | +import static org.quartz.SimpleScheduleBuilder.simpleSchedule; | ||
| 14 | +import static org.quartz.TriggerBuilder.newTrigger; | ||
| 15 | + | ||
| 16 | +public class QuartzTest3 { | ||
| 17 | + | ||
| 18 | + public static void main(String[] args) throws SchedulerException { | ||
| 19 | + | ||
| 20 | + // 获取当前时间 | ||
| 21 | + Date date = new Date(); | ||
| 22 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 23 | + System.out.println("Current Time is: " + dateFormat.format(date)); | ||
| 24 | + | ||
| 25 | + //定义一个JobDetail | ||
| 26 | + JobDetail job = newJob(HelloQuartz3.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 27 | + .withIdentity("job1", "group1") //定义name/group | ||
| 28 | + .build(); | ||
| 29 | + | ||
| 30 | + // 获取三秒后的时间 | ||
| 31 | + date.setTime(date.getTime() + 3000); | ||
| 32 | + | ||
| 33 | + // 设置6秒后的时间 | ||
| 34 | + Date endDate = new Date(); | ||
| 35 | + endDate.setTime(date.getTime() + 3000); | ||
| 36 | + | ||
| 37 | + //定义一个Trigger | ||
| 38 | + Trigger trigger = newTrigger() | ||
| 39 | + .withIdentity("trigger1", "group1") //定义name/group | ||
| 40 | + .startAt(date)// 设置三秒后启动 | ||
| 41 | + .endAt(endDate) // 设置6秒后结束 | ||
| 42 | + .withSchedule(simpleSchedule() //使用SimpleTrigger | ||
| 43 | + .withIntervalInSeconds(2) //每隔2秒执行一次 | ||
| 44 | + .repeatForever()) //一直执行,奔腾到老不停歇 | ||
| 45 | + .build(); | ||
| 46 | + | ||
| 47 | + //创建scheduler | ||
| 48 | + Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); | ||
| 49 | + | ||
| 50 | + //加入这个调度 | ||
| 51 | + scheduler.scheduleJob(job, trigger); | ||
| 52 | + | ||
| 53 | + //启动之 | ||
| 54 | + scheduler.start(); | ||
| 55 | + | ||
| 56 | + } | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | + |
src/main/java/test4/HelloQuartz4.java
0 → 100644
| 1 | +package test4; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | + | ||
| 5 | +import java.text.SimpleDateFormat; | ||
| 6 | +import java.util.Date; | ||
| 7 | + | ||
| 8 | +public class HelloQuartz4 implements Job { | ||
| 9 | + | ||
| 10 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 11 | + | ||
| 12 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 13 | + String dateStr = dateFormat.format(new Date()); | ||
| 14 | + System.out.println("now is " + dateStr); | ||
| 15 | + } | ||
| 16 | +} |
src/main/java/test4/NeverJob4.java
0 → 100644
| 1 | +package test4; | ||
| 2 | + | ||
| 3 | +import org.quartz.Job; | ||
| 4 | +import org.quartz.JobExecutionContext; | ||
| 5 | +import org.quartz.JobExecutionException; | ||
| 6 | + | ||
| 7 | +import java.text.SimpleDateFormat; | ||
| 8 | +import java.util.Date; | ||
| 9 | + | ||
| 10 | +public class NeverJob4 implements Job { | ||
| 11 | + | ||
| 12 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 13 | + | ||
| 14 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 15 | + String dateStr = dateFormat.format(new Date()); | ||
| 16 | + System.out.println("I am never, now is " + dateStr); | ||
| 17 | + } | ||
| 18 | +} |
src/main/java/test4/QuartzTest4.java
0 → 100644
| 1 | +package test4; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | +import org.quartz.impl.StdSchedulerFactory; | ||
| 5 | + | ||
| 6 | +import java.text.SimpleDateFormat; | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +import static org.quartz.JobBuilder.newJob; | ||
| 10 | +import static org.quartz.SimpleScheduleBuilder.simpleSchedule; | ||
| 11 | +import static org.quartz.TriggerBuilder.newTrigger; | ||
| 12 | + | ||
| 13 | +public class QuartzTest4 { | ||
| 14 | + | ||
| 15 | + // 使用simpleSchedule的例子 | ||
| 16 | + public static void main(String[] args) throws SchedulerException { | ||
| 17 | + | ||
| 18 | + // 获取当前时间 | ||
| 19 | + Date date = new Date(); | ||
| 20 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 21 | + System.out.println("Current Time is: " + dateFormat.format(date)); | ||
| 22 | + | ||
| 23 | + //定义一个JobDetail | ||
| 24 | + JobDetail job = newJob(HelloQuartz4.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 25 | + .withIdentity("job1", "group1") //定义name/group | ||
| 26 | + .build(); | ||
| 27 | + | ||
| 28 | + // 获取4秒后的时间 | ||
| 29 | + date.setTime(date.getTime() + 4000); | ||
| 30 | + | ||
| 31 | + // 获取4 + 6后的时间 | ||
| 32 | + Date endDate = new Date(); | ||
| 33 | + endDate.setTime(endDate.getTime() + 6000); | ||
| 34 | + | ||
| 35 | + //(距离当前时间4秒后执行且仅执行一次任务)定义一个Trigger | ||
| 36 | + SimpleTrigger trigger = (SimpleTrigger) newTrigger() | ||
| 37 | + .withIdentity("trigger1", "group1") //定义name/group | ||
| 38 | + .startAt(date) | ||
| 39 | + .build(); | ||
| 40 | + | ||
| 41 | + //定义一个JobDetail | ||
| 42 | + JobDetail job2 = newJob(ShowJob4.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 43 | + .withIdentity("show1", "group1") //定义name/group | ||
| 44 | + .build(); | ||
| 45 | + | ||
| 46 | + //(距离当前时间4秒后首次执行,之后每隔2秒执行一次任务,重复5次 | ||
| 47 | + SimpleTrigger trigger2 = (SimpleTrigger) newTrigger() | ||
| 48 | + .withIdentity("trigger2", "group1") //定义name/group | ||
| 49 | + .startAt(date) | ||
| 50 | + .withSchedule( | ||
| 51 | + simpleSchedule() | ||
| 52 | + .withIntervalInSeconds(2) | ||
| 53 | + .withRepeatCount(5) | ||
| 54 | + ).build(); | ||
| 55 | + | ||
| 56 | + //定义一个JobDetail | ||
| 57 | + JobDetail job3 = newJob(NeverJob4.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在 | ||
| 58 | + .withIdentity("never3", "group1") //定义name/group | ||
| 59 | + .build(); | ||
| 60 | + | ||
| 61 | + //(距离当前时间4秒后首次执行,之后每隔2秒执行一次任务,重复5次 | ||
| 62 | + SimpleTrigger trigger3 = (SimpleTrigger) newTrigger() | ||
| 63 | + .withIdentity("trigger3", "group1") //定义name/group | ||
| 64 | + .startAt(date) // 开始时间 | ||
| 65 | + .endAt(endDate) // 结束时间(结束时间优先于withRepeatCount,时间结束则不再重复) | ||
| 66 | + .withSchedule( | ||
| 67 | + simpleSchedule() | ||
| 68 | + .withIntervalInSeconds(2) | ||
| 69 | + .withRepeatCount(5) | ||
| 70 | + ).build(); | ||
| 71 | + | ||
| 72 | + //创建scheduler | ||
| 73 | + Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); | ||
| 74 | + | ||
| 75 | + //加入这个调度(可以设置多次调度器) | ||
| 76 | + scheduler.scheduleJob(job, trigger); | ||
| 77 | + scheduler.scheduleJob(job2, trigger2); | ||
| 78 | + scheduler.scheduleJob(job3, trigger3); | ||
| 79 | + | ||
| 80 | + | ||
| 81 | + //启动之 | ||
| 82 | + scheduler.start(); | ||
| 83 | + | ||
| 84 | + } | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | + |
src/main/java/test4/ShowJob4.java
0 → 100644
| 1 | +package test4; | ||
| 2 | + | ||
| 3 | +import org.quartz.Job; | ||
| 4 | +import org.quartz.JobExecutionContext; | ||
| 5 | +import org.quartz.JobExecutionException; | ||
| 6 | + | ||
| 7 | +import java.text.SimpleDateFormat; | ||
| 8 | +import java.util.Date; | ||
| 9 | + | ||
| 10 | +public class ShowJob4 implements Job { | ||
| 11 | + | ||
| 12 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 13 | + | ||
| 14 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 15 | + String dateStr = dateFormat.format(new Date()); | ||
| 16 | + System.out.println("I am show, now is " + dateStr); | ||
| 17 | + } | ||
| 18 | +} |
src/main/java/test5/CronTriggerTest5.java
0 → 100644
| 1 | +package test5; | ||
| 2 | + | ||
| 3 | +import org.quartz.*; | ||
| 4 | +import org.quartz.impl.StdSchedulerFactory; | ||
| 5 | + | ||
| 6 | +import static org.quartz.CronScheduleBuilder.cronSchedule; | ||
| 7 | + | ||
| 8 | +public class CronTriggerTest5 { | ||
| 9 | + | ||
| 10 | + public static void main(String[] args) throws SchedulerException { | ||
| 11 | + JobDetail jobDetail = JobBuilder | ||
| 12 | + .newJob(MyJob.class) | ||
| 13 | + .withIdentity("myJob").build(); | ||
| 14 | + | ||
| 15 | + // CronTrigger是基于日历的作业调度器,不像SimpleTrigger那样精确指定间隔时间,比SimpleTrigger更常用 | ||
| 16 | + // 比方说指定5月1日执行,或者每周三下午三点执行 | ||
| 17 | + | ||
| 18 | + // Cron表达式(在Linux上定时调度使用) | ||
| 19 | + // 用于配置CronTrigger实例 | ||
| 20 | + // 由7个子表达式组成的字符串,描述了时间表的详细信息,格式:[秒] [分] [小时] [日] [月] [周] [年] | ||
| 21 | + // * 号表示每,比方说每分、每秒、每小时;?号表示忽略 | ||
| 22 | + CronTrigger trigger = TriggerBuilder.newTrigger() | ||
| 23 | + .withIdentity("myTrigger", "group1") | ||
| 24 | + // 每分每秒每小时每日每月每年都执行 | ||
| 25 | + .withSchedule(cronSchedule("* * * * * ? *")) | ||
| 26 | + .build(); | ||
| 27 | + | ||
| 28 | + Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); | ||
| 29 | + | ||
| 30 | + scheduler.scheduleJob(jobDetail, trigger); | ||
| 31 | + | ||
| 32 | + scheduler.start(); | ||
| 33 | + | ||
| 34 | + // Cron表达式举例(年份可省略) | ||
| 35 | + // * 号表示每,比方说每分、每秒、每小时;?号表示忽略(不关心); | ||
| 36 | + // / 号表示每隔, 5/15 表示从第五秒开始,每隔15秒触发; | ||
| 37 | + // - 号表示连接,比方说表示周一到周五; # 表示第,#3表示第三周; | ||
| 38 | + // , 可以同时指定多个值 MON,WED.FRI 表示周一、周三、周五都可以 | ||
| 39 | + // W表示最近的工作日, 15W表示里15号最近的工作日 | ||
| 40 | + // 格式:[秒] [分] [小时] [日] [月] [周] [年] | ||
| 41 | + // 0 15 10 ? * * 每天10点15分触发 | ||
| 42 | + // 0 0/5 14 * * ? 每天下午的2点到2点59分(整点开始,每隔5分钟触发) | ||
| 43 | + // 0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发 | ||
| 44 | + // 0 15 10 ? * 6#3 每月的第三周的星期五开始触发(6表示星期五,1是星期日,#3表示第三周) | ||
| 45 | + // 0 15 10 ? * 6L 2016-2017 从2016年到2017年每月最后一周的星期五的10点15分触发,L表示最后一周 | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | +} |
src/main/java/test5/MyJob.java
0 → 100644
| 1 | +package test5; | ||
| 2 | + | ||
| 3 | +import org.quartz.Job; | ||
| 4 | +import org.quartz.JobExecutionContext; | ||
| 5 | +import org.quartz.JobExecutionException; | ||
| 6 | + | ||
| 7 | +import java.text.SimpleDateFormat; | ||
| 8 | +import java.util.Date; | ||
| 9 | + | ||
| 10 | +public class MyJob implements Job { | ||
| 11 | + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { | ||
| 12 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
| 13 | + System.out.println("Now is " + dateFormat.format(new Date())); | ||
| 14 | + System.out.println("Hello World"); | ||
| 15 | + } | ||
| 16 | +} |
-
请 注册 或 登录 后发表评论