在ASP.NET程序中,可以通過(guò)Time組件實(shí)現(xiàn)定時(shí)器功能,但是它與數(shù)據(jù)庫(kù)中的任務(wù)計(jì)劃不一樣,它必須基于程序正在運(yùn)行中才可生效,而數(shù)據(jù)庫(kù)任務(wù)計(jì)劃是不需要基于ASP.NET程序運(yùn)行而執(zhí)行任務(wù)。
下面是一個(gè)實(shí)際案例:
某個(gè)項(xiàng)目有一個(gè)需求,需要定時(shí)去調(diào)用別家公司的一個(gè)Web 系統(tǒng)的 WebService,把他們系統(tǒng)中的數(shù)據(jù)導(dǎo)入到我們的系統(tǒng)中。由于是調(diào)用 Web 接口,這就無(wú)法使用數(shù)據(jù)庫(kù)中的任務(wù)計(jì)劃實(shí)現(xiàn)了。后來(lái)想到使用Time 組件,利用Global 中的Application。
- using System;
- using System.Collections;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Security;
- using System.Web.SessionState;
- using System.Xml.Linq;
- namespace MyNet
- {
- public class Global : System.Web.HttpApplication
- {
- protected void Application_Start(object sender, EventArgs e)
- {
- System.Timers.Timer timer1 = new System.Timers.Timer();
- timer1.Interval = 30000; // 30000 毫秒 = 30秒
- timer1.Elapsed += new System.Timers.ElapsedEventHandler(Time1_Elapsed);
- timer1.AutoReset = true;
- timer1.Enabled = true;
- timer1.Start();
- }
- protected void Session_Start(object sender, EventArgs e)
- {
- }
- protected void Application_BeginRequest(object sender, EventArgs e)
- {
- }
- protected void Application_AuthenticateRequest(object sender, EventArgs e)
- {
- }
- protected void Application_Error(object sender, EventArgs e)
- {
- }
- protected void Session_End(object sender, EventArgs e)
- {
- }
- protected void Application_End(object sender, EventArgs e)
- {
- }
- void Time1_Elapsed(object source, System.Timers.ElapsedEventArgs e)
- {
- localhost.MyWebService ws = new localhost.MyWebService();
- ws.InsertMyWebService();
- }
- }
- }
備注:不會(huì)受多個(gè)用戶使用系統(tǒng)的影響,但必須最少有一個(gè)用戶在使用系統(tǒng),否則定時(shí)器程序不會(huì)執(zhí)行。
以上內(nèi)容介紹了ASP.NET如何定時(shí)調(diào)用WebService服務(wù)的方法,希望對(duì)大家的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選