কম্পিউটার

রুবিতে ক্রোন চাকরির সময়সূচী কিভাবে যখনই মণি সহ

ক্রোন কি?

ক্রোন হল একটি কাজের সময়সূচী ব্যবস্থা যা Linux এবং MacOS অপারেটিং সিস্টেমে উপলব্ধ৷

এটি যে কোনো প্রোগ্রাম চালাতে ব্যবহার করা যেতে পারে যে কোনো সময়ে।

এর মধ্যে রয়েছে রুবি কোড!

যদি একটি নির্দিষ্ট পুনরাবৃত্ত কাজ থাকে যে আপনি প্রতিদিন, প্রতি সপ্তাহে বা এমনকি প্রতি ঘন্টায় স্বয়ংক্রিয়ভাবে চলতে চান, তাহলে ক্রোন হতে পারে আপনি যা খুঁজছেন।

কাজের উদাহরণ অন্তর্ভুক্ত :

  • একটি সাপ্তাহিক ডাটাবেস ব্যাকআপ চালানো
  • ওয়েবসাইট কার্যকলাপের একটি দৈনিক প্রতিবেদন তৈরি করা
  • অনুস্মারক ইমেল পাঠানো হচ্ছে

আসুন আবিষ্কার করি কিভাবে আপনি ক্রোন আপনার জন্য কাজ করতে পারেন!

ক্রোনের মূল বিষয়গুলি

প্রতিটি ব্যবহারকারীর একটি ক্রোন ফাইল থাকতে পারে যেখানে আপনি যে কাজগুলি চালাতে চান তা সংজ্ঞায়িত করেন৷

আপনি crontab -e দিয়ে এই ফাইলটি সম্পাদনা করতে পারেন আদেশ৷

অথবা crontab -l দিয়ে নির্ধারিত কাজগুলি তালিকাভুক্ত করুন .

ক্রন কাজের উদাহরণ :

0 0 * * * /opt/rubies/ruby-2.5.1/bin/rake db:backup

সিনট্যাক্স কিছুটা জটিল হতে পারে এবং আপনি হয়তো এই ফাইলগুলিকে সব সময় হাত দিয়ে সম্পাদনা করতে চান না৷

আমাদের জন্য জিনিসগুলি সহজ করার জন্য কোন রত্ন আছে?

হ্যাঁ!

যখনই মণি ব্যবহার করবেন

কারণ ক্রন সিনট্যাক্স মনে রাখা কঠিন হতে পারে আমরা whenever এর মত একটি রত্ন ব্যবহার করতে পারি .

এই রত্নটি আপনাকে রুবিতে ক্রোন কাজগুলি সংজ্ঞায়িত করতে সাহায্য করে৷ .

প্রথমে রত্নটি ইনস্টল করুন।

তারপর, কনফিগারেশন ফাইল তৈরি করুন :

wheneverize .
# [add] config/schedule.rb

এটি খুলুন৷

আপনি কিছু মন্তব্য-আউট উদাহরণ দেখতে পাবেন, যদি আপনি চান সেগুলি মুছে দিন।

ধরা যাক আমরা একটি ব্যাকআপ কাজ চাই যা প্রতি ঘন্টায় চলে৷

এটি “config/schedule.rb” ফাইলের ভিতরে লিখুন :

every 1.hour do
  rake "db:backup"
end

বিকল্প অন্তর্ভুক্ত :

  • রেক (আপনার বর্তমান প্রকল্পে সংজ্ঞায়িত একটি রেক টাস্ক শুরু করুন, মনে রাখবেন যে db:backup ডিফল্টরূপে সংজ্ঞায়িত করা হয় না, তবে আপনি db:version চেষ্টা করতে পারেন )
  • রানার (রুবি ক্লাস + পদ্ধতি, যেমন Archive.backup_now )
  • কমান্ড (সিস্টেম কমান্ড)

এখন :

whenever --update-crontab চালান ক্রোন এন্ট্রি তৈরি করতে কমান্ড।

আপনি crontab -l দিয়ে আপনার নতুন এন্ট্রি দেখতে সক্ষম হবেন .

আমি এটাই পেয়েছি :

0 * * * * /bin/bash -l -c 'cd /home/jesus/testing && RAILS_ENV=production bundle exec rake db:backup --silent'

লক্ষ্য করুন যে টাস্কটি production এ চলবে মোড।

এটি পরিবর্তন করতে চান?

আপনি এই সেটিং ব্যবহার করতে পারেন :

set :environment, "development"

এটি আপনার schedule.rb-এ যায় ফাইল, উপরে।

আপনি এই কমান্ডটিও ব্যবহার করতে পারেন৷ :

whenever --update-crontab --set environment=development

যখন আপনি এই কমান্ডটি চালান তখন এটি পরিবেশ হিসাবে "উন্নয়ন" সহ সমস্ত কাজ তৈরি করে।

আরো যখনই উদাহরণ

এই উদাহরণটি দেখায় যে আপনি কীভাবে আরও নির্দিষ্ট হতে পারেন৷

সাপ্তাহিক কাজ :

every :monday, at: "6:00 PM" do
  runner "Mail.send_weekly_newsletter"
end

এই উদাহরণটি দেখায় কিভাবে একই কাজ দিনে একাধিকবার চালাতে হয়।

দিনে দুবার টাস্ক চালান :

every :day, at: ["12:00 AM", "12:00 PM"] do
  command "rm tmp/testing.txt"
end

যখনই রত্ন লগিং এবং সমস্যা সমাধান

একবার আপনার ক্রন্টাব ফাইলে কাজ হয়ে গেলে (crontab -l দিয়ে চেক করুন ) আপনি যেতে প্রস্তুত।

পরবর্তী:

আপনি কিভাবে জানবেন যে নির্ধারিত কাজগুলি সঠিকভাবে কাজ করছে কিনা?

আপনি লগিং সেট আপ করতে পারেন এবং আউটপুট পড়তে পারেন।

আপনার schedule.rb এর শীর্ষে এটি যোগ করে লগিং সক্ষম করুন৷ ফাইল।

কনফিগারেশন :

set :output, "log/cron.log"

whenever --update-crontab চালাতে ভুলবেন না আপনি যখনই পরিবর্তন করবেন তখনই আদেশ করুন!

লগ ফাইল এখনও খালি?

কিছু ঘটতে দেখার জন্য আপনাকে নির্ধারিত সময়ের অপেক্ষা করতে হবে।

Btw, যদি আপনি লগগুলিতে এই ত্রুটিটি দেখতে পান৷ :

/bin/bash: bundle: command not found

এর মানে ক্রন রুবির একই সংস্করণ চালাচ্ছে না যা আপনি করছেন।

যদি আপনি রুবি সংস্করণ ম্যানেজার ব্যবহার করেন :

এটি .bash_profile থেকে লোড করা নিশ্চিত করুন ফাইল, .bashrc এর পরিবর্তে , যাতে আপনার ক্রোন কাজগুলি এটি ব্যবহার করতে পারে৷

যখনই এর বিকল্প

যখনই একটি ভাল রক্ষণাবেক্ষণ রত্ন হয় এবং এটি দুর্দান্ত কাজ করে৷

কিন্তু বিকল্প কি?

এখানে একটি তালিকা আছে :

  • Heroku শিডিউলার, এটি Heroku ব্যবহারকারীদের জন্য একটি বিনামূল্যের কাজের সময় নির্ধারণের অ্যাড-অন। ক্রনের মতো নমনীয় নয় তবে এটি জিনিসগুলি সম্পন্ন করে
  • রুফাস শিডিউলার, একটি রুবি রত্ন যা একটি ইন-মেমরি শিডিউলারের সাথে ক্রোনকে প্রতিস্থাপন করে
  • Sidecloq এবং Sidekiq-cron, উভয়ই Sidekiq অ্যাড-অন যা Sidekiq-এ পুনরাবৃত্তিমূলক কাজ যোগ করে

মনে রাখবেন যে উভয় Sidekiq অ্যাডঅন সময়সূচীর জন্য প্রকৃত ক্রন সিনট্যাক্স চায়, তাই এটি যখনই সিনট্যাক্সের মতো সুন্দর হবে না।

ভাল জিনিস হল যে তারা Sidekiq ওয়েব UI এর সাথে একীভূত হয়৷

সারাংশ

আপনি রুবিতে যখনই রত্ন ব্যবহার করে ক্রন কাজের সময়সূচী করতে শিখেছেন!

অনুগ্রহ করে এই নিবন্ধটি শেয়ার করুন যাতে আরো মানুষ এটি থেকে উপকৃত হতে পারে৷

পড়ার জন্য ধন্যবাদ।


  1. রুবি আলিয়াস কীওয়ার্ড কীভাবে ব্যবহার করবেন

  2. রুবি গ্রেপ পদ্ধতি কীভাবে ব্যবহার করবেন (উদাহরণ সহ)

  3. রুবি মানচিত্র পদ্ধতি কীভাবে ব্যবহার করবেন (উদাহরণ সহ)

  4. রুবি দিয়ে কীভাবে পার্সার তৈরি করবেন