C 定時 器 定時執行任務 執行緒

2021-07-16 12:21:03 字數 1596 閱讀 3273

c#實現web應用程式定時啟動任務

在業務複雜的應用程式中,有時候會要求乙個或者多個任務在一定的時間或者一定的時間間隔內計畫進行,比如定時備份或同步資料庫,定時傳送電子郵件等,我們稱之為計畫任務。實現計畫任務的方法也有很多,可以採用sqlagent執行儲存過程來實現,也可以採用windows任務排程程式來實現,也可以使用windows服務來完成我們的計畫任務,這些方法都是很好的解決方案。但是,對於web應用程式來說,這些方法實現起來並不是很簡單的,主機服務提供商或者不能直接提供這樣的服務,或者需要你支付許多額外的費用。 本文就介紹乙個直接在web應用程式中使用的簡單的方法,這個方法不需要任何額外的配置即可輕鬆實現。

複製**

複製**

下面就簡單介紹一下在web站點實現計畫任務的方法。我們的例子是定時往檔案裡新增資訊,作為例子,這裡把當前的時間定時地寫入檔案中。

乙個計畫任務的工作單元稱之為乙個任務(job),下面的**描述了對所有任務都可以被排程引擎計畫執行的乙個通用的介面,這裡的每個任務實現了execute方法,供排程引擎進行呼叫:

public inte***ce ischedulerjob

如前所述,我們的例子是實現往檔案寫如字元日期,下面就是實現這一任務的方法:

複製**

public class samplejob : ischedulerjob

//向檔案寫入內容

streamwriter x = new streamwriter(file_name,true,system.text.encoding.default);

if(flag) x.write("計畫任務測試開始:");

x.write("\r\n"+c);

x.close();}}

複製**

接下來,我們建立乙個配置物件,告訴排程引擎執行什麼任務和執行的時間間隔。

複製**

public class schedulerconfiguration

}public arraylist jobs }

//排程配置類的建構函式

public schedulerconfiguration(int newsleepinterval)

}複製**

下面就是排程引擎,定時執行配置物件的任務

複製**

public class scheduler

public void start()}}

}複製**

複製**

public system.threading.thread schedulerthread = null;

複製**

最後還需要在程式退出時進行銷毀:

複製**

}複製**

好了,在vs.net裡建立乙個c#的web應用程式工程,建立taskscheduler.cs類,並修改相應的global.asax.cs檔案。為了能看到效果,我們再建立乙個表單webform1.aspx,定時重新整理來檢查我們所記錄的資料:

<%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false"

inherits="cstest.webform1" %>

標籤: .net

定時器(指令碼定時執行)

在學習大資料的時候,有很多命令都是用手動來執行的,這在實際專案中顯然是不合適的,實際專案中是需要用定時器來執行相應的指令碼的,關於定時器的知識點如下所示。基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示...

php寫定時器 定時執行

public function dotime while true 可能還有需要改進的地方,後期發現了再補充,嘻嘻。2020.9.5補充 設定定時24小時後執行,只執行了當天一次,以後就不執行了,看日誌定時器也在執行,但是中間的邏輯 不走了,除錯了很長時間,得出的結果有可能是24小時執行一次時間太長...

Python 定時執行執行緒 執行任務

最常用的是以下的方法。不過缺點是sleep函式堵塞了主線程,會造成無妨同時執行其他的程式。usr bin env python encoding utf 8 import time deftask print task deftimer n while true print time.strftim...