MemoryCacheに基づいて実現するASP.NET Webアプリケーション簡易タイミングタスクスケジューリングソリューション


ASP.NET MVCでは、簡単なタイミングタスクスケジューリングを実現するには多くの方法がある(注:ここでは簡単なタイミングタスクスケジューリングソリューションについて言及しているが、複雑なタイミングタスクスケジューリングは本明細書の範囲外である).NET WEBアプリケーションがタイミングタスクスケジューリングを実現するコンポーネント.
  • Quartz.Net:ASPベースNET MVC C#とQuartz.Netコンポーネント実装のタイミング実行タスクスケジューリング
  • FluentSchedulerシリーズの1つ:簡単で軽量で、機能が非常に強いC#/ASPをお勧めします.NETタイミングタスク実行マネージャコンポーネント--FluentScheduler
  • FluentSchedulerシリーズの2つ:シンプルで軽量で、機能が非常に強力なC#/ASP.NETタイミングスケジューリングタスク実行管理コンポーネント--FluentSchedulerの例編
  • 今日はMemoryCacheに基づいて実現されたASPをもう一つ共有します.NET Webアプリケーションのタイミングタスクスケジューリングソリューションは、MemoryCacheのCacheItemRemovedCallbackコールバックメソッドで実現されます.まずコアコードを見てみましょう.
    private static CacheItemRemovedCallback OnCacheRemove = null;
    
    protected void Application_Start(object sender, EventArgs e)
    {
        AddTask("DoStuff", 60);
    }
    
    private void AddTask(string name, int seconds)
    {
        OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
        HttpRuntime.Cache.Insert(name, seconds, null, 
            DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
            CacheItemPriority.NotRemovable, OnCacheRemove);
    }
    
    public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
    {
        // do stuff here if it matches our taskname, like WebRequest
        // re-add our task so it recurs
        AddTask(k, Convert.ToInt32(v));
    }

    以上のコードの実現ロジックは比較的簡単である、すなわちASP.NET WEBアプリケーションのApplication_StartメソッドにMemoryCacheアイテムを追加し、MemoryCacheが期限切れになるたびにタイミングタスクを繰り返し呼び出すメソッドがタイミングタスクを実行する目的を達成するコールバックメソッドを設定します.
    では、本稿では主に別のASPに基づくものを共有します.NET WEBアプリケーションの簡単なタイミングタスクスケジューリングスキーム.
    もしあなたがあなたに役に立つと思ったら、私を励まして分かち合ってください.ありがとうございます.
    本文は同時にコード友網に発表する:MemoryCacheに基づいて実現するASP.NET Webアプリケーション簡易タイミングタスクスケジューリングソリューション