none
請教一下排程抓取webservice內之資料 RRS feed

  • 問題

  • 各位先進大家好

        小弟碰到一個問題 就是想要每10分鐘自動抓取webservice上提供的資料 然後存進資料庫

        如果無法以winform處裡 那在asp.net網頁上 是否有辦法來做呢?

      

        目前的

        作法一    是自己寫一個網頁 將webservice 上的dataset 存進ms_sql 2000資料庫

        然後將這個網頁設定為首頁 在windows排程內每10分鐘開啟網頁

      

       作法二 將該網頁每10分鐘reolad一次

     

        感覺這兩種作法都不大對勁 想請教各位大大 是否有更好的辦法

         先謝了 

    2008年2月19日 上午 02:37

解答

  • 既然是排程,就交由 Windows Service 來做比較妥當。

     

    Web 是被動平台,無法主動,所以在 Web 上做排程很奇怪。

    就算是 Re-load,也只是由瀏覽器來發動,而不是由 Web 自己發動。

    2008年2月19日 上午 03:11
    版主

所有回覆

  • 既然是排程,就交由 Windows Service 來做比較妥當。

     

    Web 是被動平台,無法主動,所以在 Web 上做排程很奇怪。

    就算是 Re-load,也只是由瀏覽器來發動,而不是由 Web 自己發動。

    2008年2月19日 上午 03:11
    版主
  • HI,

     

    如果是要每10 分鐘呼叫XML Web Service的功能, 命令其將DataSet的內容寫入SQL Server. 在ASP.NET網頁中可以靠Javascript定時呼叫XML Web Service的功能, 或是靠ASP.NET AJAX提供的Timer控制項來達到定時控制的效果

     

    tihs

    2008年2月19日 上午 04:01
  • 經測試用wget 排程 就可以了 當然還有粉多方法

     

    2008年2月23日 上午 06:20
  •  

    如果是十分鐘跑一次該網頁是有辦法做到的

    只要寫一個批次檔類似以下:

    CD\
    CD Program Files\Internet Explorer\
    iexplore.exe http://xxx.xxx.aspx

     

    然後定時去跑這一支批次

    在網址後可以接參數

    ASPX程式接收參數判斷參數決定要跑的程式區塊

    跑完程式後自動關閉

    這樣的方法應該可以得到你要結果

     

    2008年2月24日 上午 03:38
  • 感謝回覆  to    Ethan Yang

      您的方式是可行的 

      我的目前的作法是把要跑的程式碼 放在page_load中

      使用wget 工具 寫一個批次檔 類似你寫的那樣把它放在server上

      排定的工作定期執行

      wget有個好處就是有開網頁的效果 而不需要真的去開網頁

      所以也不必判斷是否執行完畢 可能是小弟功力不夠

      判斷關閉ie的方法 還沒試出 不過關掉所有ie所產生的process  樓上的有說過了

     

    2008年2月25日 上午 03:03
  •  

        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim Type As String
            Type = Request("Type") ' querystring 接收type 如果是AUTO就執行 auto()副程式  response.write是關閉程式,為什麼要這樣寫是要讓程式更有彈性,可自動或手動來執行
            If Type = "AUTO" Then
                auto()

                Response.Write("<script>window.opener=null;window.close();</script>") 
            End If
        End Sub

    2008年2月25日 下午 04:34
  • 您的辦法真好 

    目前我已改成用 linux主機  執行crond 排程去執行 並且使用querystring

    由傳入的參數做必要的判斷 真的粉有彈性~!!! 謝謝~

     

                       

    2008年2月26日 上午 04:09