আমি যেভাবে এটি সম্পাদন করছি তা টাইমার সহ।
একটি সার্ভার টাইমার চালান, এটি প্রতি 60 সেকেন্ডে আওয়ার / মিনিট পরীক্ষা করে দেখুন।
যদি এটি সঠিক সময় / মিনিট হয় তবে আপনার প্রক্রিয়াটি চালান।
আমি আসলে এটি বেস্ট ক্লাসে বিমূর্তভাবে বের করে এনেছি ওনসনে ডায়ার্নার call
আমাকে কোডটি কিছুটা পরিষ্কার করতে দিন এবং আমি এটি এখানে পোস্ট করব।
private void OnceADayRunnerTimer_Elapsed(object sender, ElapsedEventArgs e)
{
using (NDC.Push(GetType().Name))
{
try
{
log.DebugFormat("Checking if it's time to process at: {0}", e.SignalTime);
log.DebugFormat("IsTestMode: {0}", IsTestMode);
if ((e.SignalTime.Minute == MinuteToCheck && e.SignalTime.Hour == HourToCheck) || IsTestMode)
{
log.InfoFormat("Processing at: Hour = {0} - Minute = {1}", e.SignalTime.Hour, e.SignalTime.Minute);
OnceADayTimer.Enabled = false;
OnceADayMethod();
OnceADayTimer.Enabled = true;
IsTestMode = false;
}
else
{
log.DebugFormat("Not correct time at: Hour = {0} - Minute = {1}", e.SignalTime.Hour, e.SignalTime.Minute);
}
}
catch (Exception ex)
{
OnceADayTimer.Enabled = true;
log.Error(ex.ToString());
}
OnceADayTimer.Start();
}
}
পদ্ধতির গোমাংসটি ই সিগন্যালটাইম.মিনিট / আওয়ার চেক এ রয়েছে।
টেস্টিং ইত্যাদির জন্য সেখানে হুক রয়েছে তবে এটি যা আপনার টাইপ করা টাইমারটিকে সমস্ত কাজ করার মতো দেখতে পারে।