.NETアプリケーションから電子メールを自動的に送信する必要があります。ただし、将来のジョブのスケジューリングでは、ユーザーがサイトにアクセスしたときにのみジョブが実行されます。ASP .NET - Quartz Schedulerのみユーザーの訪問時にジョブを実行
Global.asax.cs
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
JobScheduler.Start();
}
ジョブスケジューラ(ScheduledTasks.cs)
public class EmailJob : IJob
{
public void Execute(IJobExecutionContext context)
{
BDL.Utilities.sendEmailNotification(to, subject, body);
}
}
public static void start()
{
foreach (AspNetUser user in users)
{
IJobDetail job = JobBuilder.Create<EmailJob>().WithIdentity((jobidentity))
.UsingJobData("to", user.Email)
.UsingJobData("subject", subject)
.UsingJobData("body", bodyholder).Build();
ITrigger trigger = TriggerBuilder.Create()
// schedule for 1 day in the future
.StartAt(expdate.AddDays(1)))
.WithIdentity(triggerid)
.Build();
scheduler.ScheduleJob(job, trigger);
}
}
私は将来的には1日のトリガーを予定しています。このトリガーによって、私の仕事は将来1日実行されるはずです。しかし、何らかの理由で、このジョブは、ジョブが起動する予定の日にユーザーが自分のサイトを訪れる場合にのみ実行されます。これらのジョブをQuartzによって自動的に実行させるにはどうすればいいですか?
EDIT:私の目標は、アプリケーションプールスレッドを邪魔することなくこれを達成することです。受け入れられた答えは、この質問が単にユーザー対話を自動スクリプトに置き換えることに関することを示しています。複製はアプリケーションプールスレッドを維持する方法を求めていますが、Javaでは追加することがあります。
あなたのApplicationPoolはリサイクルされているようです。 – Rabban
[quartz .netのスケジューラを生かし続ける方法]の複製がありますか?(http://stackoverflow.com/questions/23452920/how-to-keep-quartz-nets-scheduler-alive) – Rabban
アイデアはプールのリサイクルなしでasp.netを実行するWindowsサービスのような別の解決策を見てみる必要があります –