监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
免费OA系统

当前位置:工程项目OA系统 > 免费办公软件 > 免费OA系统

免费OA自定义定时器

申请免费试用、咨询电话:400-8352-114

第二部分 泛普免费OA自定义定时器
一. 泛普OA免费版接口说明
该接口用来用户在泛普OA系统系统自由定义一些需要定时执行的操作,它是由Quartz这一个开源的作业调度框架来实现;
该接口通过配置调度时间和自行开发调度动作来实现需要定时执行的任务。
该接口提供了两种调度方式
IntervalJob接口,此接口每隔一段时间执行一次(自己定义间隔时间)
CronJob接口,此接口在指定的时间点执行(自己定义时间点)
在开发调度动作需要实现泛普OA系统提供的自定义动作接口。
 
二. 泛普OA软件实现方法&步骤
1. 配置调度文件schedule.xml(该文件位于泛普OA系统的WEB-INF/service/目录下)
<?xml version="1.0" encoding="GBK"?>
<module id="datasource" version="1.0.0">
<service-point id="job1" interface="泛普OA系统.interfaces.schedule.IntervalJob">
        <invoke-factory>
            <construct class="MyIntervalJob ">
             <set-service property="ds" service-id="datasource.dt1"/>
               <set property="second" value="60"/>
<set property="userid" value=" 100" />
            </construct>
        </invoke-factory>
</service-point>
<service-point id="job2" interface="泛普OA系统.interfaces.schedule.CronJob">
        <invoke-factory>
            <construct class="MyCronJob ">
          <set-service property="ds" service-id="datasource.dt2"/>
                <set property="cronExpr" value="0 44 12 ? * MON-FRI"/>
<set property="userid" value=" 100" />
            </construct>
        </invoke-factory>
</service-point>
 
上文中配置两个调度任务job1,job2,实现了两种调度策略,其中黑体部分是在配置每个调度时需要改变的内容;
 
注意:每次配置后需要重启OA服务方可生效;
2. 属性说明
Id:唯一标识该调度任务,无其他作用
service-id:上文定义的自定义数据源,如果任务执行的动作中需要和数据源中的数据库交付数据,需要设置该属性
class:该任务真正执行的操作,其中job1中MyIntervalJob必须继承泛普OA系统.interfaces.schedule.IntervalJob,job2中MyCronJob必须继承泛普OA系统.interfaces.schedule.CronJob;继承后需要实现的方法是其中的execute();
value:任务执行的频率,在JOB1中表示没60秒执行一次,在JOB2中表示每周一到周五12:44执行(JOB2的执行频率配置方式和一般LINUX操作系统的定时任务配置方式一致)
3. 在5.0及以上版本对于CronJob可以直接在进行可视化的配置
通过顶部菜单【设置中心】【外部接口设置】【配置计划任务接口】即可进入配置界面
 
 
点击右键【新建】即可创建一个新的【计划任务】
 
注意:
1) 该配置,不需要重启OA服务即可生效
2) 可视化配置,目前不支持其它属性的配置,如上面的配置文件中的
<set-service property="ds" service-id="datasource.dt2"/>
<set property="userid" value=" 100" />
所有建议大家在使用该接口的时候,可以直接去修改xml文件,可视化配置会在后期完善。
4. 可视化配置属性说明
计划任务标识,即xml配置中的Id:唯一标识该调度任务,无其他作用
计划任务类,即xml配置中的class:该任务真正执行的操作,MyCronJo必须继承泛普OA系统.interfaces.schedule.CronJob;继承后需要实现的方法是其中的execute();
定时时间,即xml配置中的value:任务执行的频率,表示每周一到周五12:44执行(执行频率配置方式和一般LINUX操作系统的定时任务配置方式一致)
 
5. 如何实现任务执行的操作
实现定时执行的操作,实际上就是实现泛普OA系统.interfaces.schedule.BaseIntervalJob 或者泛普OA系统.interfaces.schedule.BaseCronJob中的execute()方法
import 泛普OA系统.interfaces.schedule.BaseIntervalJob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * IntervalJob示范代码,集成BaseIntervalJob,用自己的业务逻辑覆盖了execute()方法,实际使用中这里可以编写用户需要实现的代码
 */
public class MyIntervalJob extends BaseIntervalJob {
   //获得自定义属性userid的值
       private String userid;
    
       public String getUserid() {
return userid;
}
 
    public void execute() {
        //从数据源中获取连接
        Connection conn = getDs().getConnection();  //此处是取得上文定义的数据源dt1,如果需要操作其他系统的数据才需要该定义
        try {
            //通过jdbc获取人数 
            PreparedStatement s = conn.prepareStatement("select count(*) as amount from hrmresource");  //此时假设在数据源dt1定义的数据库中有hrmresource表
            ResultSet rs = s.executeQuery();
            rs.next();
            String amount = rs.getString("amount");
            //输出到控制台
            System.out.println("人数:" + amount);
            //关闭记录集
            rs.close();
            //关闭statement
            s.close();
        } catch (Exception e) {
                   } finally {
            try {
                //关闭连接
                conn.close();
            } catch (Exception e) {
                           }
        }
    }
}
 
 
6. CronExpr表达式
 
一个cron表达式有至少6个有空格分隔的时间元素,按顺序依次为: 
秒(0~59) 
分钟(0~59) 
小时(0~23) 
天(月)(0~31,但是你需要考虑你月的天数) 
月(0~11) 
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
 
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点 
"0 0 12 * * ?" 每天中午12点触发 
"0 15 10 ? * *" 每天上午10:15触发 
"0 15 10 * * ?" 每天上午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 ? * 6#3" 每月的第三个星期五上午10:15触发 
 
有些子表达式能包含一些范围或列表 
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” 
“*”字符代表所有可能的值 
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天 
“/”字符用来指定数值的增量 
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 
  在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样 
 
 
“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值 
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”
 
发布:2006-04-22 14:37    编辑:泛普软件 · admin    [打印此页]    [关闭]

泛普免费OA系统其他应用

免费ERP系统 OA办公系统免费版 免费OA系统 免费ERP 免费财务软件 财务软件免费版 合同管理软件免费版 管家婆进销存免费版 小管家进销存免费版 生财宝进销存免费版 免费网店管理软件 服装管理系统免费版 免费广告公司管理系统 房地产销售软件下载 免费开源系统 免费办公管理系统 免费审批系统 免费办公用品管理软件 免费上网行为管理系统 免费公文管理系统 免费流程管理软件 免费商务管理软件 免费称重管理软件 免费订单管理系统 免费公司管理软件 免费信息管理系统 业务流程管理软件免费 免费时间管理软件 免费目标管理软件 免费协同管理软件 免费企业OA办公系统