J'utilise le simple planificateur de la bibliothèque Quartz.net. J'ai 7 déclencheurs différents. La séquence est comme ça.Quartz.net ne fonctionne pas toujours
Première: toutes les 120 minutes.
Deuxième: toutes les 12 heures.
Troisièmement: toutes les 5 minutes.
Quatrième: toutes les 3 minutes.
Cinquième: toutes les 29 secondes.
Sixième: toutes les 10 secondes.
Septième: toutes les 5 secondes.
C'est un peu compliqué comme vous le voyez. J'ai un problème comme celui-ci. First Trigger doit travailler toutes les deux heures. Mais après quelques courses, il s'arrête tout seul. Ca ne fonctionne pas du tout. Les autres travaillent et ils vont bien. Je suis désolé pour mon mauvais anglais.
private int bultengetir = 120; // min
private int baslayanmacsil = 29; //sec
private int kuponsonuclandir = 5;//5 min
private int canliorangetir = 10; //sec
private int canlimacgetir = 7; //sec
private int canlimacsil = 12;//hour
private int videoeslestir = 3; //min
private DateTimeOffset g_bultengetir = DateTimeOffset.UtcNow.AddMinutes(0);//10
private DateTimeOffset g_baslayanmacsil = DateTimeOffset.UtcNow.AddMinutes(5);//5
private DateTimeOffset g_canlimacgetir = DateTimeOffset.UtcNow.AddMinutes(10);//10
private DateTimeOffset g_canliorangetir = DateTimeOffset.UtcNow.AddMinutes(11);//55
private DateTimeOffset g_canlimacsil = DateTimeOffset.UtcNow.AddMinutes(12);//5
private DateTimeOffset g_kuponsonuclandir = DateTimeOffset.UtcNow.AddMinutes(15);//15
private DateTimeOffset g_videoeslestir = DateTimeOffset.UtcNow.AddMinutes(15);//7
public void RunJobs()
{
CanliMaclariGetir();
CanliOranlariGetir();
BultenGetir();
BaslayanMaclariSil();
CanliMaclariSil();
KuponlariSonuclandir();
VideoEslestir();
}
private void BultenGetir()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<BultenGetir>()
.WithIdentity("bultengetir")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInMinutes(bultengetir).RepeatForever())
.StartAt(g_bultengetir)
.Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "BultenGetir Görev Emri",
Description = "BultenGetir Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "BultenGetir()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void BaslayanMaclariSil()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<BaslayanMaclariSil>()
.WithIdentity("baslayansil")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInSeconds(baslayanmacsil).RepeatForever())
.StartAt(g_baslayanmacsil)
.Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "BaslayanMaclariSil Görev Emri",
Description = "BaslayanMaclariSil Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "BaslayanMaclariSil()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void KuponlariSonuclandir()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<KuponlariSonuclandir>()
.WithIdentity("kuponsonuclandir")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInMinutes(kuponsonuclandir).RepeatForever())
.StartAt(g_kuponsonuclandir)
.Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "KuponlariSonuclandir Görev Emri",
Description = "KuponlariSonuclandir Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "KuponlariSonuclandir()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void CanliOranlariGetir()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<CanliOranlar>()
.WithIdentity("canliorangetir")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInSeconds(canliorangetir).RepeatForever()).StartAt(g_canliorangetir).Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "CanliOranlariGetir Görev Emri",
Description = "CanliOranlariGetir Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "CanliOranlariGetir()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void CanliMaclariGetir()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<CanliMaclar>()
.WithIdentity("canlimacgetir")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInSeconds(canlimacgetir).RepeatForever()).StartAt(g_canlimacgetir).Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "CanliMaclariGetir Görev Emri",
Description = "CanliMaclariGetir Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "CanliMaclariGetir()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void CanliMaclariSil()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<CanliSil>()
.WithIdentity("canlimacsil")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInHours(canlimacsil).RepeatForever())
.StartAt(g_canlimacsil)
.Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "CanliMaclariSil Görev Emri",
Description = "CanliMaclariSil Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "CanliMaclariSil()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
private void VideoEslestir()
{
try
{
ISchedulerFactory schfack = new StdSchedulerFactory();
IScheduler scheduler = schfack.GetScheduler();
IJobDetail jobdetay = JobBuilder.Create<VideoEslestir>()
.WithIdentity("videoeslestir")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(s => s.WithIntervalInMinutes(videoeslestir).RepeatForever())
.StartAt(g_videoeslestir)
.Build();
scheduler.ScheduleJob(jobdetay, trigger);
scheduler.Start();
Log log = new Log()
{
Name = "VideoEslestir Görev Emri",
Description = "VideoEslestir Görev Emri Verildi.",
Start = DateTime.Now,
Finish = DateTime.Now,
TotalMilliSecond = 0,
Type = 6
};
DbWork db = new DbWork();
db.LogEkle(log);
}
catch (Exception ex)
{
string h_mesaj = ex.Message.ToString();
string icerik = "";
if (ex.InnerException != null) { icerik = ex.InnerException.ToString(); }
string h_yer = ex.StackTrace.ToString();
dal.HataEkle("", "Gorevler Katmanı > Gorev_Zamanlayici.cs", "videoeslestir()", DateTime.Now, h_mesaj, icerik, h_yer);
}
}
Affichez les expressions CRON que vous utilisez – Jinish
Quartz.net fonctionne dans l'AppPool du site Web. S'il n'y a pas de trafic, l'AppPool sera mis en veille et les déclencheurs ne seront pas déclenchés. Lorsque la piscine redémarre, la minuterie est réinitialisée. Ou quelque chose d'autre provoque un recyclage de l'AppPool, comme des changements dans le dossier 'bin' – VDWWD
Ok, j'ajoute du code source. –