重復容易,改變很難
          java,,,不錯的玩具
          posts - 21,  comments - 42,  trackbacks - 0
                  最近有個項目需要做一些定時的任務,就像linux的crontab一樣的功能。就在網站找了一些資料,發現quartz不錯,就一個quartz.jar包外加一個common-logging.jar
          和jta.jar,挺輕量級的小東東。
                   于是在網上找了一些資料,照葫蘆畫瓢,在本機上把環境是搭建起來了。定時任務也挺順利地跑起來了。心里挺美?。。?img alt="" src="/CuteSoft_Client/CuteEditor/images/emteeth.gif" align="absMiddle" border="0" />
                   到了上線的日子,我當然是輕車熟路的在運營環境把服務給搭上。結果一跑服務,問題出來了。發現每到定時任務到點啟動時,就會同時起兩個任務。
          網上一搜,發現不少難兄難弟,但他們都是spring,而我就是普通的servlet,好像不是一回事。
                   于是到處找資料、到處查文檔,最后我把quartz的源碼拿了過來,加上調試語句(俺只會system.out調試,嘿嘿?。?img alt="" src="/CuteSoft_Client/CuteEditor/images/emsmilep.gif" align="absMiddle" border="0" />)。然后重新打包,加入部署到tomcat環境中
          發現,我的quartz的Scheduler起了兩次,也就是說,web容器中有兩個triger服務起來了。所以任務被執行時,當然也就出現兩次。
                    原因是找到了,但為什么servlet的init方法會被調用兩次,這是不可能的啊。
                    最后又到網上一通亂搜,在網友的啟發下,我發現原來是我的server.xml文件配置有問題。
                    原因在于,我有個ww.fff.com.cn的域名,我同時也希望fff.com.cn的域名也指向同一個地方,于是我在server.xml中配了兩個host,他們的appBase指向同一個地方。
          這就導致tomcat服務啟動時,會兩次調用web.xml,做兩次初始化。也就導致servlet的init的方法調用兩次,而在web容器中產生兩個Scheduler。
                    哎,這么個錯誤,差點讓我放棄使用quartz。

                   看來,開發環境和真實環境還是有很大區別,要用好一個開源項目,如果缺少其他技術基礎,也是寸步難行,web系統是一個大的生態系統,往往加入一些元
          素,也會對其他元素造成影響,而新加入的元素也不見得就能和已有元素和諧生存。使用新技術還是有很大的風險的。但新技術的引入會讓你的系統更加飽滿、
          豐富、完善。
                   問題搞定,終于可以輕松回家了。
          posted on 2009-05-12 20:37 分享愛的空間 閱讀(2167) 評論(7)  編輯  收藏

          FeedBack:
          # re: 使用quartz有感
          2009-06-05 08:54 | lif
          ding~~~  回復  更多評論
            
          # re: 使用quartz有感
          2009-09-02 13:31 | abao
          那為什么我的server.xml里只有一個host和appbase,context是單獨放到Catalina\localhost,仍然會啟動兩次  回復  更多評論
            
          # re: 使用quartz有感
          2009-09-02 13:44 | 分享愛的空間
          這應該與你的環境配置有關,有可能的話把你的sever.xml文件發給我看一下
          @abao
            回復  更多評論
            
          # re: 使用quartz有感[未登錄]
          2011-09-09 15:33 | zy
          不帶配置文件,不帶xml文件。
          每隔幾秒或者每隔幾分鐘的定時任務都能執行
          就是不能執行幾點幾分的任務。啥反應都沒有
          JavaWeb 不帶spring框架
          求指點  回復  更多評論
            
          # re: 使用quartz有感
          2011-09-14 10:21 | 原文作者
          是不是你配置使用不對啊,因為他有點像linux的crontab完全可以控制幾點幾分執行一次
          @zy
            回復  更多評論
            
          # re: 使用quartz有感
          2012-08-21 17:57 | 王茂軍
          用的IDE是什么,那個地址下到的源碼?  回復  更多評論
            
          # re: 使用quartz有感
          2012-08-21 17:59 | 王茂軍
          我的IDE是裝有M2插件的Eclipse,下載地址是https://svn.terracotta.org/repo/quartz/trunk.下起來之后項目不可用。QQ:864157225.能講解一下您是如何獲得源碼,又是如何調試的嗎?  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2009年9月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(5)

          隨筆檔案

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 柳河县| 满城县| 柘城县| 盘山县| 康平县| 姚安县| 沂源县| 汽车| 隆昌县| 宜兰市| 托克托县| 曲阜市| 霍州市| 三河市| 北宁市| 乌拉特前旗| 同江市| 盱眙县| 沈阳市| 城步| 庆阳市| 千阳县| 都匀市| 永兴县| 兴化市| 曲阳县| 威远县| 浦江县| 黄大仙区| 法库县| 茌平县| 科技| 吴江市| 老河口市| 肃宁县| 新巴尔虎右旗| 石屏县| 轮台县| 营口市| 神农架林区| 和田县|