পুনরাবৃত্ত নির্ধারিত ইভেন্ট স্টার্টার

তিনটি ভিন্ন স্টার্টার আপনাকে আগে থেকেই একটি অটোমেশন নির্ধারণ করতে দেয়:

  1. Time.ScheduledTimeEvent
  2. Time.RecurringClockTimeScheduledEvent
  3. Time.RecurringSolarTimeScheduledEvent

প্রথম, Time.ScheduledTimeEvent , আপনাকে একটি অটোমেশন সময়সূচী করতে দেয় ভবিষ্যতে একটি একক সুনির্দিষ্ট তাৎক্ষণিকভাবে শুরু করার জন্য, অথবা ঘড়ির সময় বা সৌর ইভেন্টের (অর্থাৎ, সূর্যোদয় বা সূর্যাস্ত) উপর ভিত্তি করে পুনরাবৃত্ত ভিত্তিতে।

উদাহরণস্বরূপ, এই স্টার্টারটি প্রতিদিন রাত 10:00 টায় অটোমেশন শুরু করে:

starter<_>(structure, Time.ScheduledTimeEvent) {
  parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0)))
}

বিকল্পভাবে, আপনি ঘড়ির সময়ের পরিবর্তে সৌর সময় ইভেন্ট নির্দিষ্ট করতে পারেন। এই ধরনের স্টার্টারের প্যারামিটার হল একটি SolarTimeStruct যার মধ্যে রয়েছে:

  1. type , যা হয় SolarTimeType.Sunrise বা SolarTimeType.Sunset
  2. offset , যা আপনাকে সৌর ইভেন্টের সাপেক্ষে শুরুর সময়কে যেকোনো সময়ের মধ্যে পরিবর্তন করতে দেয়। ইতিবাচক মানগুলি সৌর ইভেন্টের পরে বিলম্বের পরিচয় দেয় এবং নেতিবাচক মানগুলি সৌর ইভেন্টের আগে স্টার্টারকে ট্রিগার করে।

নিম্নলিখিত উদাহরণ হল একটি স্টার্টার যা প্রতিদিন সূর্যোদয়ের 15 মিনিট আগে অটোমেশন শুরু করে:

starter<_>(structure, Time.ScheduledTimeEvent) {
  parameter(
    Time.ScheduledTimeEvent.solarTime(
      SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15))
    )
  )
}

দ্বিতীয় দুটি স্টার্টার হল পুনরাবৃত্ত নির্ধারিত ইভেন্ট স্টার্টার , যা আপনাকে অটোমেশন তৈরি করতে দেয় যা সময়- এবং ক্যালেন্ডার-ভিত্তিক উভয় শর্তই অন্তর্ভুক্ত করতে পারে এমন আরও নির্দিষ্ট মানদণ্ড অনুযায়ী পর্যায়ক্রমে চলে।

Time.RecurringClockTimeScheduledEvent আপনাকে এক বা একাধিক সময় বা তারিখ শর্তের উপর ভিত্তি করে একটি অটোমেশন নির্ধারণ করতে দেয়। এই স্টার্টারটি একটি সিনট্যাক্স ব্যবহার করে যা ইউনিক্স cron ইউটিলিটি দ্বারা ব্যবহৃত একটি পুনরাবৃত্ত অটোমেশনের জন্য সময়সূচী নির্দিষ্ট করার মতো।

Time.RecurringSolarTimeScheduledEvent আপনাকে সূর্যোদয় বা সূর্যাস্তের সময়ের উপর ভিত্তি করে একটি অটোমেশন নির্ধারণ করতে দেয়, ঐচ্ছিকভাবে একটি ক্যালেন্ডার-ভিত্তিক অবস্থার সাথে সমন্বয় করে।

cron অভিব্যক্তি

আপনি হয়ত ইতিমধ্যেই cron এর সাথে পরিচিত, একটি কমান্ড যা ইউনিক্স এবং লিনাক্স সিস্টেমে ব্যবহৃত হয় পুনরাবৃত্ত কাজের সময় নির্ধারণ করতে।

পুনরাবৃত্ত নির্ধারিত ইভেন্ট স্টার্টাররা একটি শিডিউলিং এক্সপ্রেশন সিনট্যাক্স ব্যবহার করে যা cron দ্বারা ব্যবহৃত একটির অনুরূপ, এবং এই কারণে, এই স্টার্টারগুলির সাথে ব্যবহৃত শিডিউলিং এক্সপ্রেশনগুলিকে cron এক্সপ্রেশন হিসাবে উল্লেখ করা হয়।

cron বিভিন্ন 'স্বাদ' এবং এই বাস্তবায়ন জুড়ে সিনট্যাক্সের বিভিন্ন বৈচিত্র রয়েছে। পুনরাবৃত্ত নির্ধারিত ইভেন্ট স্টার্টার cron এক্সপ্রেশনগুলি কোয়ার্টজ শিডিউলারের মতো একই সিনট্যাক্স ব্যবহার করে। কোয়ার্টজ cron এক্সপ্রেশন সিনট্যাক্স কোয়ার্টজের CronExpression ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে।

উদাহরণ

এখানে ব্যাখ্যা করার জন্য কয়েকটি উদাহরণ দেওয়া হল।

কেস ব্যবহার করুন দ্বিতীয় মিনিট ঘন্টা মাসের দিন মাস সপ্তাহের দিন বছর
মাঝরাতে প্রতি 24 ঘন্টা চালান 0 0 0 ? * * *
প্রতি মঙ্গলবার সকাল 6:00 এ চালান 0 30 19 ? * 3 *
ফেব্রুয়ারী মাসে প্রতি ঘন্টায় পৌনে দুই ঘন্টায় দৌড়ান 0 15 * ? 2 * *
ঘণ্টায় একবার চালান 0 0 * ? * * *
প্রতি 24 ঘন্টা, মধ্যরাতে, জানুয়ারী থেকে মার্চ পর্যন্ত, মাসের 1 তারিখের নিকটতম সপ্তাহের দিনে চালান 0 0 0 ? 1-3 1W *
ফেব্রুয়ারির দ্বিতীয় বৃহস্পতিবার, ঘণ্টায় একবার, সাড়ে বাজে 0 15 * ? 2 5#2 *
ফেব্রুয়ারী মাসের শেষ দিনে প্রতি ঘন্টায় পৌনে দুই ঘন্টায় দৌড়ান 0 15 * L 2 ? *
প্রতি মঙ্গলবার এবং বৃহস্পতিবার সকাল 6:00 এ চালান 0 30 19 ? * 3,5 *

RecurringClockTimeScheduledEvent

একটি RecurringClockTimeScheduledEvent স্টার্টারে, cron এক্সপ্রেশন স্ট্রিং Time.RecurringClockTimeScheduledEvent.cronExpression ক্ষেত্রে বরাদ্দ করা হয়।

নিম্নলিখিতটি একটি RecurringClockTimeScheduledEvent স্টার্টারের একটি উদাহরণ যা এপ্রিল মাসে প্রতি বুধবার রাত 8:00 টায় অটোমেশন শুরু করে:

starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) {
  parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *"))
}

RecurringSolarTimeScheduleEvent

RecurringSolarTimeScheduleEvent স্টার্টার দুটি পরামিতি নেয়:

  1. একটি SolarTimeStruct .
  2. cronExpression : একটি cron এক্সপ্রেশনের একটি উপসেট যা শুধুমাত্র দিন-অব-মাস, মাস, সপ্তাহের দিন এবং বছরের ক্ষেত্রগুলি নিয়ে গঠিত। সৌর সময় অটোমেশন শুরু হবে সঠিক সময় নির্ধারণ করে, তাই দ্বিতীয়, মিনিট এবং ঘন্টা ক্ষেত্রগুলি বাদ দেওয়া হয়।

নিম্নলিখিত উদাহরণ হল একটি স্টার্টার যা এপ্রিলের প্রতি বুধবার সূর্যোদয়ের এক ঘন্টা পরে একটি অটোমেশন শুরু করে:

starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) {
  parameter(
    Time.RecurringSolarTimeScheduledEvent.solarTime(
      TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1))
    )
  )
  parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *"))
}