工作總結之-----WebService計時器如何叫醒

前序

        工作中往往會用到計時器,此篇中我們關注計時器的失效。由於在項目中webservice的負擔較輕,因此決定把計時器放入Web服務中。

實現

        在web服務中放入一個任務類,其中放入一個計時器。在類初始化方法中啓動計時器。另外放一個持久類,類中專門放置一個靜態任務對象。

        最後,在Global.asax.cs文件中的Application_Start方法中初始化持久對象。這樣就實現了一個計時器。

缺點

        這個看似合理的計時器卻存在不理想的狀況-----最後,計時器停止了。有同學說是因爲內存回收了。那麼有沒有解決之道呢?

解決之道

        在內存回收後,重啓計時器即可。我們在Application_End方法中叫醒自身。添加自身的web服務,並且打開自身服務中任意一個服務方法即可。

        在這裏,我們不需要糾結雞生蛋還是蛋生雞的問題。因爲,雞蛋既然存在雞一定存在,他們同時產生,假名雞、蛋。

Config文件設置

      

    <ISCSWebSerice.Properties.Settings>
      <setting name="ISCSWebSerice_localService_HipisDeviceFault" serializeAs="String">
        <value>http://localhost:83/XXXWebService/Y.asmx</value>
      </setting>
    </ISCSWebSerice.Properties.Settings>
上例中只需要修改端口號即可,因爲調用的是自身的web服務。

發佈了27 篇原創文章 · 獲贊 20 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章