AppMaster অ্যাপ্লিকেশনের ব্যাকএন্ডে টাস্ক শিডিউলার, যেমন ব্যাকএন্ডের ক্লাসিক ক্ষেত্রে, পুনরাবৃত্তি পরিস্থিতি তৈরি করে। উদাহরণস্বরূপ, যখন আপনাকে একটি সময়সূচীতে একটি নির্দিষ্ট কাজ করতে হবে। এই ধরনের কাজের একটি ক্লাসিক উদাহরণ হল সার্ভারে অস্থায়ী ফাইলগুলি পরিষ্কার করার একটি উদাহরণ, সাপ্তাহিক ব্যাকআপ, একটি প্রদত্ত অ্যালগরিদম অনুযায়ী প্রতিবেদন তৈরি করা ইত্যাদি।
অ্যাপমাস্টার অ্যাপ্লিকেশন ব্যাকএন্ডে টাস্ক শিডিউলার ব্যবহার করার একটি উদাহরণ বিবেচনা করা যাক। ধরুন আপনি একটি প্রক্রিয়া তৈরি করতে চান যেটি প্রতিদিন সকাল 9.00 টায় ব্যবহারকারীকে তার মোবাইল ফোন নম্বরে আবহাওয়া পাঠাবে।
সুতরাং, কাজটি বেশ কয়েকটি যৌক্তিক পর্যায়ে বিভক্ত:
- মোবাইল বার্তা পাঠানোর জন্য মডিউল ইনস্টল এবং কনফিগার করা
- একটি বাহ্যিক অনুরোধ API প্রক্রিয়া তৈরি এবং কনফিগার করা
- অ্যাপ্লিকেশন ব্যাকএন্ডে একটি সময়সূচী সেট আপ করা হচ্ছে
1. মোবাইল বার্তা পাঠানোর জন্য মডিউলটি ইনস্টল করা এবং কনফিগার করা। Nexmo মডিউল আপনাকে AppMaster অ্যাপ্লিকেশনে একটি নির্বাচিত নম্বরে SMS বার্তা পাঠানোর ক্ষমতা একত্রিত করতে দেয়।
- API কী - API কী যা আপনার Nexmo অ্যাকাউন্টে পাওয়া যেতে পারে ( https://dashboard.nexmo.com/settings );
- API সিক্রেট - একটি ব্যক্তিগত কী যা ব্যবহারকারীকে সনাক্ত করতে API কী এর সাথে একত্রে ব্যবহৃত হয়। আপনি এটি আপনার Nexmo অ্যাকাউন্টেও পেতে পারেন ( https://dashboard.nexmo.com/settings );
- নম্বর থেকে - আপনার Nexmo অ্যাকাউন্টে নিবন্ধনের সময় নির্দিষ্ট করা নম্বর।
নিম্নলিখিত ব্যবসায়িক প্রক্রিয়াগুলি মডিউল ইনস্টলেশনের সাথে স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়:
- Nexmo.Send SMS - এর মাধ্যমে আপনি নির্দিষ্ট নম্বরে বার্তা পাঠাতে পারবেন
নেক্সমো মডিউল:
- ফোন [ফোন] - যে ফোন নম্বরে বার্তা পাঠানো হবে;
- বিষয়বস্তু [স্ট্রিং] - পাঠ্য বার্তা;
2. বিনামূল্যের OpenWeather API ওয়েব রিসোর্স একটি আবহাওয়ার তথ্য উৎস হিসাবে ব্যবহার করা হবে ( https://openweathermap.org/api ) .প্রথম ধাপ হল একটি বাহ্যিক অনুরোধ API টেমপ্লেট তৈরি করা৷ API অনুরোধ টেমপ্লেটগুলি বহিরাগত API অনুরোধ ট্যাবের ব্যবসায়িক প্রক্রিয়া বিভাগে উপস্থাপিত হয়। একটি নতুন টেমপ্লেট তৈরি করতে, API অনুরোধ তৈরি করুন এ ক্লিক করুন।
অনুরোধের ধরন: GET
অনুরোধের ঠিকানা: https://api.openweathermap.org/data/2.5/weather
প্রশ্ন পরামস:
- অক্ষাংশ [স্ট্রিং] - অক্ষাংশ
- লন [স্ট্রিং] - দ্রাঘিমাংশ
- Appid [স্ট্রিং] - OpenWeather API কী
এই টাস্কের অংশ হিসাবে, আমরা প্রধান ( https://openweathermap.org/api/one-call-3 ) এর প্রতিক্রিয়া বডির শুধুমাত্র কয়েকটি ক্ষেত্রে আগ্রহী।
- টেম্প [ফ্লোট] - তাপমাত্রা
- টেম্প_মিন [ফ্লোট] - মিনিট তাপমাত্রা
- Temp_max [ফ্লোট] - সর্বোচ্চ তাপমাত্রা
- চাপ [ভাসা] - চাপ
- আর্দ্রতা [ভাসা] - আর্দ্রতা
3. টাস্ক শিডিউলার সেট আপ করার আগে, আপনাকে একটি ব্যবসায়িক প্রক্রিয়া তৈরি করতে হবে যা API এর মাধ্যমে আবহাওয়ার তথ্য পাবে। ব্যবসায়িক প্রক্রিয়াটি নিম্নরূপ দেখায়:
- মেক ওয়েদার কোয়েরি মডেল ইন - একটি ভার্চুয়াল অনুরোধ প্যারামিটার মডেল তৈরি করে। Lon, lat - পছন্দসই অবস্থানের স্থানাঙ্ক, appid - OpenWeather পরিষেবার API কী;
- API অনুরোধ: আবহাওয়া - OpenWeather API এর সাথে ইন্টারঅ্যাক্ট করার জন্য দায়ী ব্যবসায়িক প্রক্রিয়া
- আবহাওয়া প্রসারিত করুন: বডি মডেল আউট - শরীরের প্রতিক্রিয়া মডেল স্থাপন করার জন্য প্রয়োজন
- Expand Weather: Body Model Out_main - তাপমাত্রা (টেম্প) পাওয়ার জন্য অনুরোধ-প্রতিক্রিয়া বডির মূল মডেলকে প্রসারিত করে।
- স্ট্রিং-এ টেম্প ফিল্ড ভ্যালুকে স্ট্রিং টাইপে রূপান্তর করে;
- Nexmo: SMS পাঠান - নির্দিষ্ট ফোন নম্বরে (ফোন) তাপমাত্রা (সামগ্রী) সম্পর্কে তথ্য সহ একটি বার্তা পাঠায়
সিডিউলার ট্যাবের ব্যবসায়িক প্রক্রিয়া বিভাগে একটি শিডিউল সেট আপ করুন।
সময়সূচী ট্যাবে শিডিউলার সেটিংস তাদের প্রকারের উপর নির্ভর করে আলাদা।
আসুন বিস্তারিতভাবে তাদের প্রতিটি বিবেচনা করা যাক
1. দৈনিক - দৈনিক সময়সূচী কনফিগার করার অনুমতি দেয়
- সময় - UTC+0-তে সময় নির্ধারণ করে যে সময় নির্ধারণকারী নির্বাচিত BP শুরু করবে;
- সপ্তাহের দিন - শিডিউলারের কাজ করার জন্য সপ্তাহের দিনগুলি সংজ্ঞায়িত করে;
- স্বয়ংক্রিয়ভাবে শুরু করুন - যদি সত্যে সেট করা হয়, আগেরটি সম্পূর্ণ না হলে একটি নতুন BP শুরু হবে না। ডিফল্ট মান: মিথ্যা।
- স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করুন - প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় আরম্ভ করে যদি এটি বাধাপ্রাপ্ত হয়/সফলভাবে শুরু না হয়।
ব্যর্থ আইটেম প্রক্রিয়াকরণের পুনরায় চেষ্টা করুন - প্রক্রিয়া পুনরায় আরম্ভ করার প্রচেষ্টার সংখ্যা;
প্রতিটি পুনরায় চেষ্টা করার আগে অপেক্ষা করুন - প্রক্রিয়াটি পুনরায় আরম্ভ করতে প্রতিটি শটের আগে সময় বিলম্ব করুন;
- জোর করে প্রস্থান করুন - কয়েক সেকেন্ডের মধ্যে সম্পূর্ণ না হলে জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন। সত্য, ডিফল্টরূপে। সম্পূর্ণ হওয়া পর্যন্ত সেকেন্ডের সংখ্যা ডিফল্টরূপে 3 সেকেন্ড।
2. মাসিক - মাসিক পরিকল্পনাকারী
- সময় - UTC+0-তে সময় নির্ধারণ করে যে সময় নির্ধারণকারী নির্বাচিত BP শুরু করবে;
- সপ্তাহের দিনগুলি - দুটি সেটিংস নিয়ে গঠিত:
পুনরাবৃত্তি ফ্রিকোয়েন্সি:
- প্রতি প্রথম
- প্রতি মুহূর্ত
- প্রতি তৃতীয়
- প্রতি চতুর্থ
- আজ
সপ্তাহের দিন - সপ্তাহের দিন সংজ্ঞায়িত করে
- মাস-মাস নির্ধারিত হয়
- স্বয়ংক্রিয় সূচনা - যদি সত্যে সেট করা হয়, শীঘ্রই সম্পূর্ণ না হলে একটি নতুন PSU শুরু হবে না। ডিফল্ট মান: মিথ্যা।
- স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করুন - প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় আরম্ভ করে যদি এটি বাধাপ্রাপ্ত হয়/শুরু না হয়
ব্যর্থ আইটেম প্রক্রিয়াকরণের পুনরায় চেষ্টা করুন - প্রক্রিয়া পুনরায় আরম্ভ করার সংখ্যা;
প্রতিটি পুনরায় চেষ্টা করার আগে অপেক্ষা করুন - প্রক্রিয়াটি পুনরায় আরম্ভ করার প্রতিটি প্রচেষ্টার আগে সময় বিলম্ব করুন;
- জোর করে প্রস্থান করুন - একটি প্রক্রিয়া কয়েক সেকেন্ডের মধ্যে সম্পূর্ণ না হলে তা বন্ধ করে দেয়। সত্য, ডিফল্টরূপে। সম্পূর্ণ হওয়া পর্যন্ত সেকেন্ডের সংখ্যা ডিফল্টরূপে 3 সেকেন্ড।
3. পর্যায়ক্রমে - আপনাকে নমনীয়ভাবে শিডিউলারের ফ্রিকোয়েন্সি কনফিগার করতে দেয়
- প্রতিটি - প্রতি N সেকেন্ড/মিনিট/ঘন্টা/দিনে পুনরাবৃত্তিযোগ্যতা সেট করার ক্ষমতা। ডিফল্ট: প্রতি 1 ঘন্টা।
- স্বয়ংক্রিয়ভাবে শুরু করুন - যদি সত্যে সেট করা হয়, আগেরটি সম্পূর্ণ না হলে একটি নতুন BP শুরু হবে না। ডিফল্ট মান: মিথ্যা।
- স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করুন - প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় আরম্ভ করে যদি এটি বাধাপ্রাপ্ত হয়/সফলভাবে শুরু না হয়
ব্যর্থ আইটেম প্রক্রিয়াকরণের পুনরায় চেষ্টা করুন - প্রক্রিয়া পুনরায় আরম্ভ করার প্রচেষ্টার সংখ্যা;
প্রতিটি পুনরায় চেষ্টা করার আগে অপেক্ষা করুন - প্রক্রিয়াটি পুনরায় আরম্ভ করতে প্রতিটি শটের আগে সময় বিলম্ব করুন;
- জোর করে প্রস্থান করুন - কয়েক সেকেন্ডের মধ্যে সম্পূর্ণ না হলে জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন। সত্য, ডিফল্টরূপে। সম্পূর্ণ হওয়া পর্যন্ত সেকেন্ডের সংখ্যা ডিফল্টরূপে 3 সেকেন্ড।
4. অ্যাপটি শুরু করার পর - একক সময়ের টাস্ক প্ল্যানার
- বিলম্ব - অ্যাপ্লিকেশন শুরু এবং স্টার্টআপের মধ্যে বিলম্ব সংজ্ঞায়িত করে। ডিফল্ট - 0 সেকেন্ড
- স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করুন - প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় আরম্ভ করে যদি এটি বাধাপ্রাপ্ত হয়/সফলভাবে শুরু না হয়
ব্যর্থ আইটেম প্রক্রিয়াকরণের পুনরায় চেষ্টা করুন - প্রক্রিয়া পুনরায় আরম্ভ করার প্রচেষ্টার সংখ্যা;
প্রতিটি পুনরায় চেষ্টা করার আগে অপেক্ষা করুন - প্রক্রিয়াটি পুনরায় আরম্ভ করতে প্রতিটি শটের আগে সময় বিলম্ব করুন;
- জোর করে প্রস্থান করুন - কয়েক সেকেন্ডের মধ্যে সম্পূর্ণ না হলে জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন। সত্য, ডিফল্টরূপে। সম্পূর্ণ হওয়া পর্যন্ত সেকেন্ডের সংখ্যা ডিফল্টরূপে 3 সেকেন্ড।
5. অ্যাপটি শেষ করার আগে - প্রতিবার অ্যাপ্লিকেশন শেষ হওয়ার সময় সময়সূচী চালান
- স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করুন - প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় আরম্ভ করে যদি এটি বাধাপ্রাপ্ত হয়/সফলভাবে শুরু না হয়
ব্যর্থ আইটেম প্রক্রিয়াকরণের পুনরায় চেষ্টা করুন - প্রক্রিয়া পুনরায় আরম্ভ করার প্রচেষ্টার সংখ্যা;
প্রতিটি পুনরায় চেষ্টা করার আগে অপেক্ষা করুন - প্রক্রিয়াটি পুনরায় আরম্ভ করার প্রতিটি প্রচেষ্টার আগে সময় বিলম্ব করুন;
- জোর করে প্রস্থান করুন - কয়েক সেকেন্ডের মধ্যে সম্পন্ন না হলে জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন। সত্য, ডিফল্টরূপে। সম্পূর্ণ হওয়া পর্যন্ত সেকেন্ডের সংখ্যা ডিফল্টরূপে 3 সেকেন্ড।
সময়সূচী সেটিংসের প্যারামস ট্যাবে, বিপি ইনপুটে পরামিতিগুলি পাস করাও সম্ভব যখন এটি শিডিউলারের দ্বারা চালু করা হয়:
আমাদের উদাহরণে, সময়সূচী সেটিংস দেখতে এইরকম:
- প্রতিদিন সকাল ৯টায় UTC+0 তে বার্তা পাঠানো হবে
- প্রক্রিয়াটি অবিলম্বে শুরু না হলে প্রচেষ্টার মধ্যে 10 মিনিটের বিলম্বের সাথে 3 বার স্বয়ংক্রিয়ভাবে পুনরায় চালু করার চেষ্টা করে;
- একটি প্রক্রিয়া তিন সেকেন্ডের মধ্যে সম্পূর্ণ না হলে জোরপূর্বক বন্ধ করে দেয়।
আমাদের অ্যাপ্লিকেশনটি বেঁচে থাকে এবং ব্যাকএন্ডে কাজ করে, তাই এটি কাজ করার জন্য, এটি প্রকাশ করাই যথেষ্ট।