`

定时发送参考

阅读更多

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。

实例:
package example.quartz;

import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;

import java.util.Date;

/** */ /**
*
@author starsiday
*/

/**/ /* 实现Job */
public   class QuartzReport implements Job {

    
/**/ /* 重载该函数 */
    
public   void execute(JobExecutionContext cntxt) throws JobExecutionException {
         System.out.println(
" Generating report - "
                        
+ cntxt.getJobDetail().getJobDataMap().get( " type " )
                        
+   new Date());
     }


    
public   static   void main(String[] args) {
        
try    {
             SchedulerFactory schedFact
=   new org.quartz.impl.StdSchedulerFactory();
             Scheduler sched
= schedFact.getScheduler();
             sched.start();
             JobDetail jobDetail
=   new JobDetail( " Income Report " ,
                    
" Report Generation " , QuartzReport. class );
             jobDetail.getJobDataMap().put(
" type " , " FULL " );
             CronTrigger trigger
=   new CronTrigger( " Income Report " ,
                    
" Report Generation " );
            
/**/ /* 每1分钟执行一次 */
             trigger.setCronExpression(
" 0 0/1 * * * ? " );
             sched.scheduleJob(jobDetail, trigger);
         }
  catch (Exception e) {
             e.printStackTrace();
         }

     }

}

Quartz的配置文件:quartz.properties
# Configure Main Scheduler Properties
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
# Configure ThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount =   5
org.quartz.threadPool.threadPriority = 4
# Configure JobStore
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

附:cronExpression配置说明

字段 允许值 允许的特殊字符
   0-59    , - * /
   0-59    , - * /
小时    0-23    , - * /
日期    1-31    , - * ? / L W C
月份    1-12 或者 JAN-DEC    , - * /
星期    1-7 或者 SUN-SAT    , - * ? / L C #
年(可选)    留空, 1970-2099    , - * /

表达式 意义
"0 0 12 * * ?"    每天中午12点触发
"0 15 10 ? * *"    每天上午10:15触发
"0 15 10 * * ?"    每天上午10:15触发
"0 15 10 * * ? *"    每天上午10:15触发
"0 15 10 * * ? 2005"    2005年的每天上午10:15触发
"0 * 14 * * ?"    在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?"    在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?"    在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?"    在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED"    每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI"    周一至周五的上午10:15触发
"0 15 10 15 * ?"    每月15日上午10:15触发
"0 15 10 L * ?"    每月最后一日的上午10:15触发
"0 15 10 ? * 6L"    每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005"    2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3"    每月的第三个星期五上午10:15触发

特殊字符 意义
*    表示所有值;
?    表示未说明的值,即不关心它为何值;
-    表示一个指定的范围;
,    表示附加一个可能值;
/    符号前表示开始时间,符号后表示每次递增的值;
L("last")    ("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。 如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。
W("weekday")    只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16 天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day- of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月的最后一个工作日。
#    只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。
C    指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。

在MONTH和Day Of Week字段里对字母大小写不敏感。

分享到:
评论

相关推荐

    qq消息定时发送

    QQ消息定时发送是一种实用的功能,尤其对于需要在特定时间向他人发送信息的情况,例如提醒、通知或者安排。QQ作为中国最流行的即时通讯软件之一,提供了这样的功能,让用户能够提前设置好消息并设定发送时间,从而...

    Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送

    【Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送】是一个适用于嵌入式硬件开发的项目,尤其适合使用STM32微控制器的系统。该项目利用Qt框架提供了串口通信功能,并且增加了对十六进制和字符发送的支持,还...

    定时发送邮件(可参考)绝对好

    本教程将探讨如何实现“定时发送邮件”的功能,这在业务通知、自动化报告或日常维护提醒等方面非常实用。我们将主要围绕ASP.NET平台,利用心跳检测和Timer控件来构建这一功能。 1. **定时任务原理**: 定时任务...

    No3.定时发送器CtoS.rar_VC定时发送

    定时发送器CtoS.rar_VC定时发送"是一个使用VC++编写的程序,旨在实现客户端定时向服务器发送数据的功能。在Windows XP操作系统环境下运行,这个项目可能是一个基础的通信示例,展示了如何利用编程技术实现定时的数据...

    [152]VC实现单线程的串口通信程序,可以手动发送,定时发送.zip上位机开发VC串口学习资料源码下载

    [152]VC实现单线程的串口通信程序,可以手动发送,定时发送.zip上位机开发VC串口学习资料源码下载[152]VC实现单线程的串口通信程序,可以手动发送,定时发送.zip上位机开发VC串口学习资料源码下载[152]VC实现单线程...

    安卓短信彩信相关相关-安卓手机定时发送短信多条短信同时发布.zip

    安卓手机定时发送短信 ,多条短信同时发布.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    定时自动压缩备份文件并发送电子邮件工具V1.0

    需要配置好smtp邮箱,如果不会配置,请在百度上搜 163 smtp 邮件配置进行参考。 注意: 双击相应的文本框可以选择“备件文件夹路径”或“压缩文件夹路径” 本工具发送邮件附件的大小和您所选择的SMTP邮箱商所要求的...

    taobao.rar_taobao_定时 发送 代码

    【标题】"taobao.rar" 是一个压缩包文件,其中包含了一个名为 "taobao" 的项目,该项目专注于实现“定时发送”功能,特别是在淘宝平台上。这个功能可能是一个自定义的客户端应用或者服务,用于自动向淘宝用户(淘码...

    基于SpringBoot实现定时发送邮件过程解析

    本文主要介绍了基于SpringBoot实现定时发送邮件的过程解析,通过示例代码对大家的学习或者工作具有一定的参考学习价值。下面是对标题、描述、标签和部分内容的详细解析: 标题:“基于SpringBoot实现定时发送邮件...

    C#串口,定时触发

    C# 串口+触发时间。 请参考

    .NET实现定时发送邮件代码(两种方式)

    在.NET框架中,定时发送邮件可以通过多种方式实现,这里主要介绍两种方法。首先,我们需要理解定时任务的基本原理,通常涉及时间触发器和邮件服务的使用。邮件服务通常基于SMTP(Simple Mail Transfer Protocol)...

    确定SJA1000_CAN控制器的位定时参数

    ### 确定SJA1000_CAN控制器的位定时参数 #### 1. 介绍 SJA1000_CAN控制器是Philips公司推出的一款高性能CAN控制器,广泛应用于汽车电子、工业自动化等领域。其核心特性之一在于能够灵活设置位定时参数,从而满足...

    android实现定时拍照并发送微博功能

    主要为大家详细介绍了android实现定时拍照并发送微博功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    asp.net基于windows服务实现定时发送邮件的方法

    *** 应用程序通常会依赖于 Windows 服务来执行一些后台任务,比如定时发送邮件。在本篇文档中,将详细介绍如何在***环境中,通过Windows服务实现定时任务,向指定用户发送电子邮件。该方法在系统后台运行,以保证...

    Python实现微信定时自动向指定群发送消息(含源代码、可执行脚本及使用方法)

    为了追求更加便捷的方式,在此基于Python编写了一个实现微信定时自动发送指定群消息。这里有两个文件,一个是主程序main.py,一个文本文件(txt)。txt是用来放入指定群聊名称,设置定时时间,编辑发送的消息内容。...

    Android编程使用Service实现Notification定时发送功能示例

    本文实例讲述了Android编程使用Service实现Notification定时发送功能。分享给大家供大家参考,具体如下: /** * 通过启动或停止服务来管理通知功能 * * @description: * @author ldm * @date 2016-4-29 上午9...

    定时任务插件_K3Cloud定时任务插件_

    - **通知提醒**:如发送邮件、短信等,提醒相关人员关注特定事件。 4. **使用与配置** 使用K3Cloud定时任务插件通常包括以下步骤:创建任务、设定执行时间、编写任务逻辑、测试和部署。在配置过程中,可以参考...

    电信设备-发送定时控制系统和方法与其中使用的移动台.zip

    在电信领域,发送定时控制系统和方法对于确保网络通信的高效性和可靠性至关重要。移动台作为通信系统中的关键元素,需要与基站和其他移动台精确同步,以避免数据包冲突和通信错误。下面将详细讨论这个主题,主要关注...

    C#2008后台定时自动发送邮件源码。

    标题 "C#2008后台定时自动发送邮件源码" 涉及的核心知识点是C#编程语言在Windows系统服务开发中的应用,以及利用MS SQL数据库实现定时邮件提醒功能。下面将对这些知识点进行详细阐述。 首先,C#是微软开发的一种...

    ASP中实现定时发送邮件的代码分享

    参考:ASP中实现执行定时任务的方法 这里我们使用JMail组件的方式来做,邮件的内容为单个网页,可以自由定制。 下面我们看看定时邮件发送的代码: 代码如下: Function getHTTPPage(url)  dim objXML  set ...

Global site tag (gtag.js) - Google Analytics