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

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

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

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

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

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 এক্সপ্রেশনগুলি Quartz scheduler এর মতো একই সিনট্যাক্স ব্যবহার করে। Quartz এর CronExpression এর ডকুমেন্টেশনে Quartz cron এক্সপ্রেশন সিনট্যাক্স ব্যাখ্যা করা হয়েছে।

উদাহরণ

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

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

RecurringClockTimeScheduledEvent

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

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

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 *"))
}