私は一般的に、自動化を行うWebサーバーを用意することは悪い習慣だと考えています。自動化されたジョブにより適したサービスに近づかないことを望んでいます。
そうは言っても、上記の記事を使用して、Quartz.netの使用というタイトルのセクションをglobal.asaxのapplication_startに配置します。
application_endで、ジョブスケジューラをシャットダウンします。
最後に、フォルダに次のようなクラスを記述します。
c#
public class InsertRssFeedJob : IJob
{
public void Execute(JobExecutionContext context)
{
var rssController = new RssController();
rssController.InsertRssFeedItem("");
}
}
vb.net
Public Class InsertRssFeedJob
Implements IJob
Public Sub Execute(context as JobExecutionContext)
Dim rssContoller = new RssController()
rssController.InsertRssFeedItem("")
End Sub
End Class
申し訳ありませんが、VBをIDEの外部に書き込むのはよくわからないため、このc#を変換する必要があります。
private static IScheduler _scheduler;
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
_scheduler = new StdSchedulerFactory().GetScheduler();
JobDetail jobDetail = new JobDetail("rssFeedJob", null, typeof(InsertRssFeedJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);
trigger.Name = "myTrigger";
_scheduler.ScheduleJob(jobDetail, trigger);
}
protected void Application_End()
{
_scheduler.Shutdown();
}
また、RssControllerがコンテキスト情報にアクセスする必要がある場合は、HttpContextクラスから取得する必要があります。
Si