QuartzHostedServiceは、依存性注入nugetパッケージにクォーツAsp.Netコア・タスクに達成するために使用されます。
次のように基本的な例です。
使用してシステムを。 使用してSystem.Collections.Genericを。 使用してSystem.Linqのを。 使用してSystem.Threading.Tasksを。 使用してAspNetCoreSampleQuartzHostedService.Jobsを。 使用してMicrosoft.AspNetCore.Builderを。 使用してMicrosoft.AspNetCore.Hostingを。 使用してMicrosoft.AspNetCore.Mvcを。 使用してMicrosoft.Extensions.Configurationを。 使用してMicrosoft.Extensions.DependencyInjectionを。 使用してMicrosoft.Extensions.Loggingを。 使用してMicrosoft.Extensions.Optionsを。 使用してクォーツ。 使用してQuartzHostedServiceを。 名前空間AspNetCoreSampleQuartzHostedService { パブリック クラス起動 { 公共スタートアップ(IConfiguration構成) { 設定 = 構成; } 公共 IConfiguration設定{ 取得します。} // このメソッドはランタイムによって呼び出されます。コンテナにサービスを追加するには、このメソッドを使用します。 公共 ボイドConfigureServices(IServiceCollectionサービス) { services.AddMvc()SetCompatibilityVersion(CompatibilityVersion.Version_2_2)。 services.AddOptions(); services.Configure <のAppSettings>(構成); services.Configure <InjectProperty>(オプションは=> {options.WriteTextは= " これは注入の文字列です" ;}); services.AddQuartzHostedService() .AddQuartzJob <HelloJob> () .AddQuartzJob <InjectSampleJob> () .AddQuartzJob <HelloJobSingle> () .AddQuartzJob <InjectSampleJobSingle> (); } // このメソッドはランタイムによって呼び出されます。HTTPリクエストパイプラインを設定するには、このメソッドを使用します。 公共 無効設定(IApplicationBuilderアプリ、IHostingEnvironmentのENV、IOptions <のAppSettings> 設定) { 場合(env.IsDevelopment()) { app.UseDeveloperExceptionPage()。 } app.UseMvc()。 もし(settings.Value.EnableHelloSingleJob) { app.UseQuartzJob <HelloJobSingle>(TriggerBuilder.Create()。WithSimpleSchedule(X => x.WithIntervalInSeconds(1 ).RepeatForever())) .UseQuartzJob <InjectSampleJobSingle>(()=> { 返すTriggerBuilder.Createを() .WithSimpleSchedule(X).RepeatForever())=> x.WithIntervalInSeconds(1 ).RepeatForever())。 }); } であれば(settings.Value.EnableHelloJob) { app.UseQuartzJob <HelloJob>(新しいリスト<TriggerBuilder> { TriggerBuilder.Create() .WithSimpleSchedule(X => x.WithIntervalInSeconds(1 ).RepeatForever())、 TriggerBuilder.Create( ) .WithSimpleSchedule(X => x.WithIntervalInSeconds(2 }); app.UseQuartzJob<InjectSampleJob>(()=> { VARの結果= 新しいリスト<TriggerBuilder> (); result.Add(TriggerBuilder.Create() .WithSimpleSchedule(X => x.WithIntervalInSeconds(10 ).RepeatForever())); 戻り結果; }); } } } }
例拡張モード:
パブリック静的クラスModBusScheduler { 公共の静的な無効AddQuartzJobsService(このIServiceCollectionサービス) { services.AddQuartzHostedService() .AddQuartzJob <よだれ>( "HAVC_Elev") .AddQuartzJob <よだれ>( "照明"、 "照明") .AddQuartzJobDetail(()= > JobBuilder.Create <よだれ>()WithIdentity( "メーター")ビルド())。。 .AddQuartzJobDetail(()=> JobBuilder.Create <よだれ>()WithIdentity( "PowerDis")ビルド())。 } パブリック静的ボイドUserQuartzJobsService(このIApplicationBuilderアプリ、 TriggerBuilder.Create()戻り .WithIdentity( "HAVC_Elev") .UsingJobData( "MODBUS"、settings.AC_ElevatorSlave) .UsingJobData( "DEVICETYPE"、 "HAVC_Elev") (5).WithSimpleSchedule(X => x.WithIntervalInSecondsを.RepeatForever ())StartNow()。 }); }
nuget接続 https://www.nuget.org/packages/QuartzHostedService/
githubのアドレスhttps://github.com/mukmyash/QuartzHostedService