蝸牛的JAVA外殼

          ┎Running Snail┒ ┖ -------------- ┚

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            13 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

          我寫了一個Feed提取小程序,但有時由于Feed長時間無響應,所以需要去判斷是否超時,以下的程序
          主線程:

           1package test.thread;
           2
           3import com.sun.syndication.feed.synd.SyndFeed;
           4
           5public class RssThread extends Thread {
           6    
           7    public void run() {
           8        while(true)
           9        {
          10            try
          11            {
          12                
          13                System.out.println("start");
          14                
          15                String[] str = new String[]{"http://del.icio.us/rss/geneboy",
          16                        "http://picasaweb.google.com/data/feed/base/user/icyleaf.cn",
          17                        "http://feeds.qzone.qq.com/cgi-bin/cgi_rss_out?uin=414680"}
          ;
          18                
          19                forint i = 0 ; i < str.length ; i++ )
          20                {
          21                    System.out.println("url = " + str[i]);
          22
          23                    RssUtil ru = new RssUtil();
          24                    ru.setUrl(str[i]);
          25                    ru.start();
          26                    
          27                    while(true)
          28                    {
          29                        sleep(2000);
          30                        SyndFeed feed = ru.getFeed();
          31                        System.out.println("feed = " + (feed != null ? "ok" : "timeOut"));
          32                        
          33                        if ( feed == null )
          34                        {
          35                            sleep(10000);
          36                            
          37                            feed = ru.getFeed();
          38                            System.out.println("second feed = " + (feed != null ? "ok" : "timeOut"));
          39                        }
                                      
          40                        
          41                        if ( feed == null )
          42                        {
          43                            break;
          44                        }

          45                        else
          46                        {
          47                            System.out.println("處理不null");
          48                            break;
          49                        }

          50                    }

          51                }

          52                
          53                System.out.println("end");
          54                
          55                sleep(2000);
          56                
          57            }
          catch(Exception e)
          58            {
          59                //e.printStackTrace();
          60            }

          61        }
                  
          62    }

          63    
          64    public static void main(String[] args)
          65    {
          66        RssThread rss = new RssThread();
          67        rss.start();
          68    }

          69}

          70

          RssUtil:負責提取Rss
           1package test.thread;
           2
           3import java.net.URL;
           4
           5import org.apache.commons.logging.Log;
           6import org.apache.commons.logging.LogFactory;
           7
           8import com.sun.syndication.feed.synd.SyndFeed;
           9import com.sun.syndication.io.SyndFeedInput;
          10import com.sun.syndication.io.XmlReader;
          11
          12/**
          13 * Rss相關
          14 * 
          15 * @author Administrator
          16 * 
          17 */

          18public class RssUtil extends Thread {
          19    
          20    private String url;
          21    
          22    private SyndFeed feed;
          23
          24    private static final Log logger = LogFactory.getLog(RssUtil.class);
          25    
          26    public void run() {
          27        
          28        feed = getFeed(url);
          29    }

          30
          31    /**
          32     * 獲得Feed
          33     * 
          34     * @param url
          35     * @return
          36     */

          37    public SyndFeed getFeed(String url) {
          38        try 
          39        {
          40            URL feedUrl = new URL(url);
          41            SyndFeedInput input = new SyndFeedInput();
          42
          43            SyndFeed feed = input.build(new XmlReader(feedUrl));
          44
          45            return feed;
          46            
          47        }
           catch (Exception ex) {
          48            //ex.printStackTrace();
          49        }

          50
          51        return null;
          52    }

          53
          54    public SyndFeed getFeed() {
          55        return feed;
          56    }

          57
          58    public void setFeed(SyndFeed feed) {
          59        this.feed = feed;
          60    }

          61
          62    public String getUrl() {
          63        return url;
          64    }

          65
          66    public void setUrl(String url) {
          67        this.url = url;
          68    }

          69}

          70
          posted on 2008-01-09 16:31 會跑的蝸牛 閱讀(1952) 評論(0)  編輯  收藏 所屬分類: Java

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


          網站導航:
           
          主站蜘蛛池模板: 徐汇区| 沾益县| 迭部县| 屯留县| 西安市| 常德市| 阳朔县| 乐都县| 怀仁县| 钟山县| 楚雄市| 琼结县| 安康市| 渑池县| 冷水江市| 五指山市| 博白县| 彭泽县| 余干县| 化德县| 沙湾县| 资中县| 苍南县| 阿图什市| 临武县| 菏泽市| 册亨县| 淅川县| 宁陵县| 名山县| 屏山县| 大埔区| 浙江省| 托克逊县| 耒阳市| 甘德县| 华亭县| 岳普湖县| 山阴县| 合作市| 合江县|