監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉
免費OA系統(tǒng)

當前位置:工程項目OA系統(tǒng) > 免費辦公軟件 > 免費OA系統(tǒng)

免費OA自定義定時器

申請免費試用、咨詢電話:400-8352-114

第二部分 泛普免費OA自定義定時器
一. 泛普OA免費版接口說明
該接口用來用戶在泛普OA系統(tǒng)系統(tǒng)自由定義一些需要定時執(zhí)行的操作,它是由Quartz這一個開源的作業(yè)調(diào)度框架來實現(xiàn);
該接口通過配置調(diào)度時間和自行開發(fā)調(diào)度動作來實現(xiàn)需要定時執(zhí)行的任務。
該接口提供了兩種調(diào)度方式
IntervalJob接口,此接口每隔一段時間執(zhí)行一次(自己定義間隔時間)
CronJob接口,此接口在指定的時間點執(zhí)行(自己定義時間點)
在開發(fā)調(diào)度動作需要實現(xiàn)泛普OA系統(tǒng)提供的自定義動作接口。
 
二. 泛普OA軟件實現(xiàn)方法&步驟
1. 配置調(diào)度文件schedule.xml(該文件位于泛普OA系統(tǒng)的WEB-INF/service/目錄下)
<?xml version="1.0" encoding="GBK"?>
<module id="datasource" version="1.0.0">
<service-point id="job1" interface="泛普OA系統(tǒng).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系統(tǒng).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>
 
上文中配置兩個調(diào)度任務job1,job2,實現(xiàn)了兩種調(diào)度策略,其中黑體部分是在配置每個調(diào)度時需要改變的內(nèi)容;
 
注意:每次配置后需要重啟OA服務方可生效;
2. 屬性說明
Id:唯一標識該調(diào)度任務,無其他作用
service-id:上文定義的自定義數(shù)據(jù)源,如果任務執(zhí)行的動作中需要和數(shù)據(jù)源中的數(shù)據(jù)庫交付數(shù)據(jù),需要設置該屬性
class:該任務真正執(zhí)行的操作,其中job1中MyIntervalJob必須繼承泛普OA系統(tǒng).interfaces.schedule.IntervalJob,job2中MyCronJob必須繼承泛普OA系統(tǒng).interfaces.schedule.CronJob;繼承后需要實現(xiàn)的方法是其中的execute();
value:任務執(zhí)行的頻率,在JOB1中表示沒60秒執(zhí)行一次,在JOB2中表示每周一到周五12:44執(zhí)行(JOB2的執(zhí)行頻率配置方式和一般LINUX操作系統(tǒng)的定時任務配置方式一致)
3. 在5.0及以上版本對于CronJob可以直接在進行可視化的配置
通過頂部菜單【設置中心】【外部接口設置】【配置計劃任務接口】即可進入配置界面
 
 
點擊右鍵【新建】即可創(chuàng)建一個新的【計劃任務】
 
注意:
1) 該配置,不需要重啟OA服務即可生效
2) 可視化配置,目前不支持其它屬性的配置,如上面的配置文件中的
<set-service property="ds" service-id="datasource.dt2"/>
<set property="userid" value=" 100" />
所有建議大家在使用該接口的時候,可以直接去修改xml文件,可視化配置會在后期完善。
4. 可視化配置屬性說明
計劃任務標識,即xml配置中的Id:唯一標識該調(diào)度任務,無其他作用
計劃任務類,即xml配置中的class:該任務真正執(zhí)行的操作,MyCronJo必須繼承泛普OA系統(tǒng).interfaces.schedule.CronJob;繼承后需要實現(xiàn)的方法是其中的execute();
定時時間,即xml配置中的value:任務執(zhí)行的頻率,表示每周一到周五12:44執(zhí)行(執(zhí)行頻率配置方式和一般LINUX操作系統(tǒng)的定時任務配置方式一致)
 
5. 如何實現(xiàn)任務執(zhí)行的操作
實現(xiàn)定時執(zhí)行的操作,實際上就是實現(xiàn)泛普OA系統(tǒng).interfaces.schedule.BaseIntervalJob 或者泛普OA系統(tǒng).interfaces.schedule.BaseCronJob中的execute()方法
import 泛普OA系統(tǒng).interfaces.schedule.BaseIntervalJob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * IntervalJob示范代碼,集成BaseIntervalJob,用自己的業(yè)務邏輯覆蓋了execute()方法,實際使用中這里可以編寫用戶需要實現(xiàn)的代碼
 */
public class MyIntervalJob extends BaseIntervalJob {
   //獲得自定義屬性userid的值
       private String userid;
    
       public String getUserid() {
return userid;
}
 
    public void execute() {
        //從數(shù)據(jù)源中獲取連接
        Connection conn = getDs().getConnection();  //此處是取得上文定義的數(shù)據(jù)源dt1,如果需要操作其他系統(tǒng)的數(shù)據(jù)才需要該定義
        try {
            //通過jdbc獲取人數(shù) 
            PreparedStatement s = conn.prepareStatement("select count(*) as amount from hrmresource");  //此時假設在數(shù)據(jù)源dt1定義的數(shù)據(jù)庫中有hrmresource表
            ResultSet rs = s.executeQuery();
            rs.next();
            String amount = rs.getString("amount");
            //輸出到控制臺
            System.out.println("人數(shù):" + 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,但是你需要考慮你月的天數(shù)) 
月(0~11) 
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,F(xiàn)RI,SAT)
 
0 0 10,14,16 * * ? 每天上午10點,下午2點,4點
0 0/30 9-17 * * ?   朝九晚五工作時間內(nèi)每半小時
0 0 12 ? * WED 表示每個星期三中午12點 
"0 0 12 * * ?" 每天中午12點觸發(fā) 
"0 15 10 ? * *" 每天上午10:15觸發(fā) 
"0 15 10 * * ?" 每天上午10:15觸發(fā) 
"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發(fā) 
"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發(fā) 
"0 0/5 14,18 * * " 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發(fā) 
"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發(fā) 
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44觸發(fā) 
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15觸發(fā) 
"0 15 10 15 * ?" 每月15日上午10:15觸發(fā) 
"0 15 10 L * ?" 每月最后一日的上午10:15觸發(fā) 
"0 15 10 ? * 6L" 每月的最后一個星期五上午10:15觸發(fā) 
"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發(fā) 
 
有些子表達式能包含一些范圍或列表 
例如:子表達式(天(星期))可以為 “MON-FRI”,“MON,WED,F(xiàn)RI”,“MON-WED,SAT” 
“*”字符代表所有可能的值 
因此,“*”在子表達式(月)里表示每個月的含義,“*”在子表達式(天(星期))表示星期的每一天 
“/”字符用來指定數(shù)值的增量 
例如:在子表達式(分鐘)里的“0/15”表示從第0分鐘開始,每15分鐘 
  在子表達式(分鐘)里的“3/20”表示從第3分鐘開始,每20分鐘(它和“3,23,43”)的含義一樣 
 
 
“?”字符僅被用于天(月)和天(星期)兩個子表達式,表示不指定值 
當2個子表達式其中之一被指定了值以后,為了避免沖突,需要將另一個子表達式的值設為“?”
 
發(fā)布:2006-04-22 14:37    編輯:泛普軟件 · admin    [打印此頁]    [關閉]
相關文章:

泛普免費OA系統(tǒng)其他應用

免費ERP系統(tǒng) OA辦公系統(tǒng)免費版 免費OA系統(tǒng) 免費ERP 免費財務軟件 財務軟件免費版 合同管理軟件免費版 管家婆進銷存免費版 小管家進銷存免費版 生財寶進銷存免費版 免費網(wǎng)店管理軟件 服裝管理系統(tǒng)免費版 免費廣告公司管理系統(tǒng) 房地產(chǎn)銷售軟件下載 免費開源系統(tǒng) 免費辦公管理系統(tǒng) 免費審批系統(tǒng) 免費辦公用品管理軟件 免費上網(wǎng)行為管理系統(tǒng) 免費公文管理系統(tǒng) 免費流程管理軟件 免費商務管理軟件 免費稱重管理軟件 免費訂單管理系統(tǒng) 免費公司管理軟件 免費信息管理系統(tǒng) 業(yè)務流程管理軟件免費 免費時間管理軟件 免費目標管理軟件 免費協(xié)同管理軟件 免費企業(yè)OA辦公系統(tǒng)