時限タスクライブラリの使用

1 Nugetからライブラリをダウンロードします:taskschedulerengine

作成者:pettijohn.com

 

2時限タスクを使用し、次のようにクラスを追加します。

    public class DataSyncTask : ITask
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();
        public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e)
        {
            try
            {
                // 此处为具体的操作
            }
            catch (Exception ex)
            {
                //抛出异常,记录错误日志
                logger.Fatal(ex.Message, ex);
            }
        }

        public void Initialize(ScheduleDefinition schedule, object parameters)
        {

        } 
    }

3構成ファイルノードの構成方法:<task type = "namespace。classname、namespace、.. ..

  <taskSchedulerEngine>
    <schedule>
      <at name="TaskName" month="*" dayOfMonth="1" dayOfWeek="*" hour="1" minute="1" second="1" kind="Local">
        <execute>
          <task type="SheBaoGIS.DataSyncTask, SheBaoGIS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" parameters="" />
        </execute>
      </at>
    </schedule>
  </taskSchedulerEngine>
</configuration>

4)タイミングプログラムを開始するためのメインプログラム:

SchedulerRuntime.StartWithConfig();

 追加する他のWebサイトの引用:

c#タイミング実行プログラム共有(タイミングプログラム)

 更新日:2014年1月7日09:10:16作成者:    コメントしたい

 

小さなタイミングプログラムを作成しました。タイミングがトリガーされたら、必要に応じて他のコードを実行できます。操作プロセスを共有します。皆さんのお役に立てば幸いです。

1)プロジェクトに参照ファイルを追加します。TaskSchedulerEngine.dll(dllはITaskインターフェイスを定義し、InitializeとHandleConditionsMetEventの2つのメソッドを定義します);

2)時間トリガークラスを作成します:SyncTask.cs(クラス名は自分で定義します)。このクラスはインターフェイスITaskを実装する必要があります。具体的なコードは次のとおりです。

 

次のようにコードコードをコピーします。


public class SyncTask:ITask
{   //渡されたパラメーターを受け入れる変数   privatestring configName;     /// <summary>   ///特定の操作のコード   /// </ summary>   public void HandleConditionsMetEvent(object sender、ConditionsMetEventArgs e )   {     try     {       //特定の操作は次のとおりです     }     catch(Exception ex)     {       //例外をスローしてエラーログを記録します     }   }


  













 

  /// <summary>
  ///初期化
  /// </ summary>
  /// <param name = "schedule"> </ param>
  /// <param name = "parameters">パラメータ(このパラメータはでトリガーされます設定中に渡されるタイミング)</ param>
  public void Initialize(ScheduleDefinition schedule、object parameters)
  {             //渡されたパラメーターで変数を初期化します     configFileName = parameters.ToString();     try     {       //初期化の特定のコード     }     catch(例外e)     {           //例外をスローし、エラーログを記録します      }   } }











 

3)app.configファイル、構成ファイルのパラメーター設定の説明を構成します。

a。<at> </ at>はタスクです。異なるプログラムが異なる時間にトリガーされる場合は、複数の<at>を設定する必要があります。name:は各<at>の名前であり、必要に応じて名前を付けることができます。 ;月:タスクがトリガーされる月、*は毎月トリガーされることを意味します; dayofMonth:トリガーされる各月の日、*は毎日を意味します; dayOfWeek:トリガーされる曜日、*はトリガーされることを意味します毎日トリガー;時間:トリガー、*は1時間に1回トリガー、分:1時間に数分トリガー、58は1時間に58分、秒:1分に数秒トリガー。

b。<task>はトリガーされるクラスであり、次のように入力します: "トリガーされるクラスの詳細アドレス(プロジェクト名。フォルダー名。クラス名)、プロジェクト名、バージョン、カルチャー、PublicKeyToKen"、パラメーター:パラメーター渡されました。パラメータを渡さない場合は、「」に設定できます。

 

次のようにコードコードをコピーします。


    <taskSchedulerEngine>
    <schedule>
      <at name = "TaskName" month = "*" dayOfMonth = "*" dayOfWeek = "*" hour = "*" minutes = "58" second = "0" kind = "Local">
        <実行>
          <task type = "Test.Task.SyncTask、Test、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null" parameters = "FtpConfig.xml" />
        </ execute>
      </ at>
    </ schedule>
</ taskSchedulerEngine>

 

4)タイミングプログラムを開始するためのメインプログラム:

 

次のようにコードコードをコピーします。


SchedulerRuntime.StartWithConfig();

 

OK、これまでのところ、完全なタイミングプログラムは終了しています。

おすすめ

転載: blog.csdn.net/qq503690160/article/details/86308489