Saya sangat baru dalam menggunakan Quartz dan saya memiliki pertanyaan tentang pemicunya. Apakah mungkin untuk memicu berdasarkan keberadaan file? Saya ingin Quartz menjalankan pekerjaan hingga file tertentu ditemukan, lalu berhenti menjalankan pekerjaan itu dan mungkin beralih ke pekerjaan lain.
Misalnya, saya ingin melakukan sesuatu seperti ini:
(1) Job1 memeriksa apakah File.txt ada di direktori tertentu setiap 60 detik.
(2) Jika File.txt ditemukan, picu Job2 untuk memulai. Job1 berhenti memeriksa keberadaan file.
Saat ini, saya punya:
// Job definitions
var Job1 = JobBuilder.Create<TestEmail>().WithIdentity("job1", "group1").Build();
var Job2 = JobBuilder.Create<TestFileTrigger>().WithIdentity("job2", "group2").Build();
// Triggers
ITrigger trigger1 = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1").StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())
.Build();
ITrigger trigger2 = TriggerBuilder.Create()
.WithIdentity("trigger2", "group2").StartNow()
.Build();
// Schedule jobs
scheduler.ScheduleJob(Job1, trigger1);
if (TestFileTrigger.fileExistence == true)
{
scheduler.ScheduleJob(Job2, trigger2);
}
tapi sepertinya Job2 tidak pernah dimulai.
TestEmail dan TestFileTrigger cukup mencetak ke konsol saat ini. Boolean TestFileTrigger.fileExistence berasal dari pemeriksaan apakah suatu file ada di lokasi tertentu (yang memang ada).
Sunting: TestFileTrigger.fileExistence adalah boolean. Menambahkan definisi Job1/Job2 jika itu membantu.
Sunting: Saya menemukan bahwa jika saya meletakkan Thread.Sleep(TimeSpan.FromSeconds(x));
sebelum pernyataan if, pernyataan if akan berjalan jika kondisinya terpenuhi. (Di mana x adalah beberapa detik.) Mengapa ini berhasil dalam kasus ini, namun tidak sebaliknya? Saya tidak selalu tahu berapa detik yang diperlukan agar kondisi tersebut terpenuhi.
getnextfiretime
katakan? quartz-scheduler.org/ api/2.0.0/org/quartz/ - person SpaceBison   schedule 01.07.2014