রেলের জন্য ক্রোন জব: সেরা অনুশীলন?


295

রেলের পরিবেশে নির্ধারিত কাজগুলি চালানোর সর্বোত্তম উপায় কী? স্ক্রিপ্ট / রানার? মই দিয়া আহরণ করা? আমি প্রতি কয়েক মিনিট পরে টাস্কটি চালাতে চাই।


149
গুগল থেকে যারা এখানে আসছেন তাদের জন্য আরও ভাল পদ্ধতির জন্য গৃহীত উত্তরের বাইরে দেখুন।
jrdioko

4
যখনই উত্তর গ্রহণযোগ্য উত্তরের চেয়ে বেশি যুক্তিসঙ্গত বলে মনে হয়, যা পুরানো হ্যাক।
রব

2
কমপক্ষে একটি উত্তর অনুমান করে যে আপনি একটি নির্দিষ্ট রত্ন ইনস্টল করেছেন অনুগ্রহ করে সাবধান হন।
তাস

একটি দম্পতি (আমি কি জানতে পেরেছি হতে) ভাল অনুশীলন এখানে সংক্ষিপ্ত করা হয় wisecashhq.com/blog/writing-reliable-cron-jobs
Thibaut Barrère

অনেক ক্ষেত্রে ক্রোন জবসের দুর্গন্ধ হয়। সাইডিকিক / রেসিউ (বা অন্যান্য পটভূমি কর্মী) এর মাধ্যমে আরও ভাল লেখার সময়সূচী লিখুন, বা একটি ডিমন লিখুন (কম কার্যকরী এবং নিরীক্ষণযোগ্য)। ক্রোন জবসে কমপক্ষে কয়েকটি খারাপ জিনিস রয়েছে: 1) এক বারের জন্য লক করা একটি ব্যথা; 2) মনিটরিং সহজে করা যায় না; 3) ব্যতিক্রম হ্যান্ডলিংয়ে আবার ম্যানুয়ালি লেখা উচিত; 4) পুনরায় আরম্ভ করা সহজ নয়; 5) উপরের সমস্ত বিষয়গুলি সহজেই পটভূমি কর্মীদের দ্বারা সমাধান করা।
দিমিত্রি Polushkin

উত্তর:


110

আমি রেক পদ্ধতির ব্যবহার করছি ( হিরকু দ্বারা সমর্থিত )

Lib / Tasks / cron.rake নামক একটি ফাইল সহ ..

task :cron => :environment do
  puts "Pulling new requests..."
  EdiListener.process_new_messages
  puts "done."
end

কমান্ড লাইন থেকে কার্যকর করতে, এটি কেবল "রেক ক্রোন"। এই কমান্ডটি তখন অপারেটিং সিস্টেম ক্রোন / টাস্ক শিডিয়ুলারের পছন্দ অনুযায়ী রাখা যেতে পারে।

আপডেট করুন এটি বেশ পুরানো প্রশ্ন এবং উত্তর! কিছু নতুন তথ্য:

  • heroku ক্রন সেবা আমি রেফারেন্সড যেহেতু দ্বারা প্রতিস্থাপিত হয়েছে Heroku নির্ধারণকারী
  • ঘন ঘন কাজের জন্য (উদাহরণস্বরূপ, যেখানে আপনি রেল পরিবেশের স্টার্টআপ ব্যয়টি এড়াতে চান) আমার পছন্দসই পদ্ধতির মধ্যে রয়েছে একটি স্ক্রিপ্ট কল করতে সিস্টেম ক্রোন ব্যবহার করা যা (ক) ব্যাকগ্রাউন্ডে প্রয়োজনীয় কাজটি শুরু করার জন্য একটি সুরক্ষিত / প্রাইভেট ওয়েবহুক এপিআই বা (খ) আপনার পছন্দের কুইউটিং সিস্টেমে সরাসরি কোনও কাজ সজ্জিত করুন

এই ক্ষেত্রে ক্রোন এন্ট্রিটি কী হওয়া উচিত, তাই ওএস রেক টাস্কের সঠিক পথটি জানে?
jrdioko

13
এনবি: আজকাল আমি যখনই ব্যবহার করছি (জিম গারভিনের উত্তর দেখুন) তবে রেক টাস্ক চালানোর জন্য একটি কাঁচা ক্রোন প্রবেশ এ জাতীয় কিছু হবে: 30 4 * * * / বিন / বাশ-এল-সি 'সিডি / অপ্ট / রেলস্যাপ এবং& RAILS_ENV = প্রোডাকশন রেক ক্রোন
সাইলেন্ট

1
আপনি এই কনসোল থেকে কল কিভাবে? আমি করেছি load "#{Rails.root}/lib/tasks/cron.rake"এবং করেছি rake cron, তবে নেমআরার পেয়েছি: মূল জন্য অপরিজ্ঞাত স্থানীয় পরিবর্তনশীল বা পদ্ধতি 'ক্রোন': অবজেক্ট
বি সেভেন

3
এই পদ্ধতির সাথে সমস্যাটি :environmentনির্ভরতা। আমাদের কাছে খুব ভারী রেইল অ্যাপ্লিকেশন রয়েছে যা শুরু হতে দীর্ঘ সময় নেয়, আমাদের রাকে প্রতি মিনিটে ডাকা হয় এবং টাস্কটি সম্পাদন করে এমন রিল পরিবেশ শুরু করতে আরও সংস্থান গ্রহণ করে । আমি ক্রোন মাধ্যমে কল করার জন্য ইতিমধ্যে শুরু হওয়া রেল পরিবেশগুলি পছন্দ করতে চাই, নিয়ামক পদ্ধতির এবং রেক পরিবেশের মধ্যে কিছু হতে হবে ।
fguillen

এই কাজের সময়কাল কত? আমি যদি একটি শর্ত ব্যবহার করছি। আমি জানতে চাই এটি কতটা নিয়মিত চালিত হয়। হিরকু ওয়েবসাইটে আমি এ সম্পর্কিত কোনও তথ্য খুঁজে পাচ্ছি না।
শুভম চৌধুরী চৌধুরী

254

আমি যখনই প্রকল্পগুলিতে তফসিলযুক্ত কাজের উপর নির্ভর করে খুব জনপ্রিয় ব্যবহার করেছি এবং এটি দুর্দান্ত। ক্রন্টব্যাট বিন্যাসের সাথে ডিল করার পরিবর্তে আপনার নির্ধারিত কাজগুলি সংজ্ঞায়িত করতে আপনাকে একটি দুর্দান্ত ডিএসএল দেয়। পুনরায় পড়া থেকে:

যখনই কোনও রুবি রত্ন যা ক্রোন জব লেখার জন্য এবং নিযুক্ত করার জন্য একটি সুস্পষ্ট সিনট্যাক্স সরবরাহ করে।

README থেকে উদাহরণ:

every 3.hours do
  runner "MyModel.some_process"       
  rake "my:rake:task"                 
  command "/usr/bin/my_great_command"
end

every 1.day, :at => '4:30 am' do 
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end

22
যদি এটি প্রতি মিনিটে চালানো হয় তবে পরিবেশটি প্রতিবার পুনরায় চালু হবে, যা ব্যয়বহুল হতে পারে। দেখে মনে হচ্ছে github.com/ssoroka/scheduler_daemon এটি এড়িয়ে চলে।
lulalala

3
আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমের সাথে ক্রোন কনফিগারেশন রাখার জন্য +1
ব্রিটিহোলোরন

3
আমি মনে করি এটিই সেরা সমাধান। আপনি যদি রেল ব্যবহার করে থাকেন তবে আমার মনে হয় রেলগুলিতে সবকিছু লেখাই ভাল। এই পদ্ধতির সাহায্যে আপনি সার্ভারগুলি পরিবর্তন করার সময় ক্রোন টাস্কটিও ভুলে যেতে পারেন, এটি অ্যাপ্লিকেশনটির সাথে সরে যায়।
অ্যাড্রিয়ান মাত্তিও

এটি যখনই সত্যই সহায়ক (একটি পুরানো ফ্রি সংস্করণও রয়েছে) সম্পর্কে একটি দুর্দান্ত রেলকাস্ট রয়েছে
aceofbassgreg

@ টনি, যখনই ক্রোন জব লেখার জন্য মূলত একটি ডোমেন নির্দিষ্ট ভাষা। এটি আপনার রেল সার্ভারে নিয়মিত ক্রোন সিনট্যাক্সে সংকলিত হয় এবং ক্রোন যা আপনার নির্দিষ্ট করা কাজগুলি সম্পাদন করে (সাধারণত রেল রানার মাধ্যমে)।
গ্রেগ

19

আমাদের প্রকল্পে আমরা যখনই প্রথম রত্ন ব্যবহার করি তবে কিছু সমস্যার মুখোমুখি হয়েছি।

এরপরে আমরা রুফস স্কিডুলার রত্নে স্যুইচ করেছিলাম , যা রেলগুলিতে কর্মসূচি নির্ধারণের জন্য খুব সহজ এবং নির্ভরযোগ্য বলে প্রমাণিত হয়েছিল।

আমরা এটি সাপ্তাহিক এবং প্রতিদিনের মেলগুলি প্রেরণের জন্য এবং এমনকি পর্যায়ক্রমিক রেকের কোনও কাজ বা কোনও পদ্ধতি চালানোর জন্য ব্যবহার করেছি।

এতে ব্যবহৃত কোডটি হ'ল:

    require 'rufus-scheduler'

    scheduler = Rufus::Scheduler.new

    scheduler.in '10d' do
      # do something in 10 days
    end

    scheduler.at '2030/12/12 23:30:00' do
      # do something at a given point in time
    end

    scheduler.every '3h' do
      # do something every 3 hours
    end

    scheduler.cron '5 0 * * *' do
      # do something every day, five minutes after midnight
      # (see "man 5 crontab" in your terminal)
    end

আরও জানার জন্য: https://github.com/jmettraux/rufus-scheduler


1
রুফাসের জন্য, যেমন আমি এটি সাধারণ রুবি প্রকল্প বা পূর্ণ রেল অ্যাপ্লিকেশন উভয়ের জন্য ব্যবহার করেছি।
পাওলো ফিদালগো

8
আপনি যখনই যে বিষয়গুলির সাথে দৌড়েছিলেন সে সম্পর্কে আপনি কি আরও কিছু নির্দিষ্ট হতে পারেন?
ডিউক

সর্বকালের দুর্দান্ত উত্তর
ডার্লান ডিয়েটারিচ

17

আপনার কাজগুলি সমাপ্ত হতে খুব বেশি সময় নেয় না বলে ধরে নেওয়া, প্রতিটি কাজের জন্য একটি ক্রিয়া সহ একটি নতুন নিয়ামক তৈরি করুন। কন্ট্রোলার কোড হিসাবে টাস্কটির যুক্তি প্রয়োগ করুন, তারপরে ওএস পর্যায়ে একটি ক্রোনজব সেট আপ করুন যা এই নিয়ামকের URL এবং উপযুক্ত সময় বিরতিতে ক্রিয়াটির অনুরোধ করতে উইজেট ব্যবহার করে। এই পদ্ধতির সুবিধাগুলি হ'ল:

  1. সাধারণ কন্ট্রোলারের মতো আপনার সমস্ত রেল সামগ্রীগুলিতে সম্পূর্ণ অ্যাক্সেস পান।
  2. আপনি যেমন সাধারণ ক্রিয়া করেন ঠিক তেমন বিকাশ ও পরীক্ষা করতে পারে।
  3. একটি সাধারণ ওয়েব পৃষ্ঠা থেকে আপনার কাজগুলিও অ্যাডহক করতে পারে।
  4. অতিরিক্ত রুবি / রেল প্রক্রিয়া চালিয়ে আর কোনও স্মৃতি ব্যবহার করবেন না।

12
এই কাজে অন্যদের কীভাবে অ্যাক্সেস করা থেকে বাধা দেওয়া যায়? টাস্কটি সিপিইউ নেওয়া এবং এটি ঘন ঘন বলা হলে সমস্যা দেখা দেয়।
সরুনউ

44
আমি জানি এটি কিছুক্ষণ আগে ছিল, তবে ক্রোন জব করার এখন পর্যন্ত এটি সর্বোত্তম উপায় নয়। রেল পরিবেশে অ্যাক্সেস করার জন্য প্রচুর অন্যান্য উপায় থাকা সত্ত্বেও কেন ইন্টারফেসটি সত্য উপস্থাপন করে তা লঙ্ঘন করে কেন ওয়েব ইন্টারফেসের মধ্য দিয়ে যাবেন?
ম্যাচু

6
"আপনার কাজগুলি শেষ হতে খুব বেশি সময় নিবে না" এই যোগ্যতাটি একটি বিশাল কাজের মতো মনে হচ্ছে। কাজগুলি খুব দ্রুত যেসব ক্ষেত্রে খুব বেশি কার্যকর হয় এবং কেবল সেই ক্ষেত্রেই না যে ব্যবহারটি আরও সাধারণভাবে কার্যকর সেগুলি ব্যবহার করা ভাল না? এই পদ্ধতিতে আপনি বা নিয়মিতভাবে অন্য পদ্ধতির ব্যবহার করে নতুন করে লেখার দরকার আছে কিনা তা আপনি ক্রমাগত পুনর্বিবেচনা করছেন না।
আইকনোক্লাস্ট

77
এই পুরানো প্রশ্নটি হ'ল "রেল ক্রোন" এর শীর্ষস্থানীয় গুগল ফলাফল। এই উত্তরটি সর্বোত্তম পদ্ধতির থেকে অনেক দূরে। আরও বুদ্ধিমান পরামর্শের জন্য দয়া করে অন্যান্য প্রতিক্রিয়া দেখুন।
জিম গারভিন

2
সেরা উপায় নয়। কোনও রেস্ট সার্ভিস না কল করে ক্রোন জবের মাধ্যমে আপনার কাছে রেল এনভিল করার আরও অনেক উপায় রয়েছে। রেক অ্যাপ্রোচ অবশ্যই ভাল
শাইন

10

স্ক্রিপ্ট / রানার এবং রেক টাস্ক ক্রোন জব হিসাবে চালানোর জন্য পুরোপুরি সূক্ষ্ম।

ক্রোন জবগুলি চালানোর সময় আপনার অবশ্যই একটি গুরুত্বপূর্ণ বিষয় মনে রাখতে হবে। এগুলি সম্ভবত আপনার অ্যাপের মূল ডিরেক্টরি থেকে কল করা হবে না। এর অর্থ ফাইলগুলির জন্য আপনার সমস্ত প্রয়োজনীয় (গ্রন্থাগারের বিপরীতে) সুস্পষ্ট পথ দিয়ে করা উচিত: উদাহরণস্বরূপ ফাইল.ডায়ারনাম (__ ফাইলাইল) + "/ অন্যান্য_ফাইলে"। এর অর্থ হ'ল আপনাকে অন্য ডিরেক্টরি থেকে কীভাবে স্পষ্টভাবে কল করতে হবে তা জানতে হবে :-)

আপনার কোডটি অন্য ডিরেক্টরি থেকে চালানো সমর্থন করে কিনা তা পরীক্ষা করে দেখুন

# from ~
/path/to/ruby /path/to/app/script/runner -e development "MyClass.class_method"
/path/to/ruby /path/to/rake -f /path/to/app/Rakefile rake:task RAILS_ENV=development

এছাড়াও, ক্রোন জবগুলি সম্ভবত আপনার মতো চলবে না, সুতরাং আপনি .bashrc এ দেওয়া কোনও শর্টকাটের উপর নির্ভর করবেন না। তবে এটি কেবল একটি স্ট্যান্ডার্ড ক্রোন টিপ ;-)


আপনি যেকোন ব্যবহারকারীর মতো কাজ চালাতে পারেন (কেবলমাত্র আপনার ব্যবহারকারীর জন্য ক্রন্টব এন্ট্রি সেট করুন) তবে আপনি সঠিক যে প্রোফাইল এবং লগইন স্ক্রিপ্টগুলি চলবে না এবং আপনি নিজের হোম ডিরেক্টরিতে শুরু করবেন না। সুতরাং @ লুক-ফ্রেঞ্চির মন্তব্যে "সিডি" দিয়ে কমান্ডটি শুরু করা সাধারণ বিষয়
টম উইলসন

10

যখনই (এবং ক্রোন) এর সাথে সমস্যাটি হ'ল এটি যতবার সম্পাদিত হবে ততবারই রেলের পরিবেশ পুনরায় লোড করে দেয়, এটি আপনার আসল সমস্যা যখন আপনার কাজগুলি ঘন ঘন হয় বা অনেক কাজ শুরু করার কাজ করে। এর কারণে আমার প্রযোজনায় সমস্যা হয়েছে এবং আপনাকে অবশ্যই সতর্ক করতে হবে।

রুফাসের শিডিয়ুলার এটি আমার জন্য করে ( https://github.com/jmettraux/rufus-scheduler )

আমার দীর্ঘকালীন চাকরির সময়, আমি দেরী_জব ( https://github.com/collectiveidea/delayed_job ) দিয়ে এটি ব্যবহার করি

আশা করি এটা কাজে লাগবে!


10

আমি রেসিকিউ / রেসিকিউ শিডিয়ুলারের বড় ফ্যান । আপনি কেবল পুনরাবৃত্তি ক্রোন-জাতীয় কার্যগুলি চালাতে পারবেন না তবে নির্দিষ্ট সময়েও কাজগুলি করতে পারেন। ক্ষতিটি হ'ল এর জন্য একটি রেডিস সার্ভার প্রয়োজন।


10

এটি আকর্ষণীয় যে কেউ সাইডটিকের কথা উল্লেখ করেনি । আপনি যদি ইতিমধ্যে Sidekiq ব্যবহার করেন তবে এটি দুর্দান্ত সংযোজন।

সাইডটিক সাইডিকিকের জন্য পুনরাবৃত্তিকারী কর্মীদের সংজ্ঞা দেওয়ার জন্য একটি সহজ এপিআই সরবরাহ করে।

কাজটি দেখতে এইরকম দেখাবে:

class MyWorker
  include Sidekiq::Worker
  include Sidetiq::Schedulable

  recurrence { hourly.minute_of_hour(15, 45) }

  def perform
    # do stuff ...
  end
end

8

দুজনেই ঠিকঠাক কাজ করবে। আমি সাধারণত স্ক্রিপ্ট / রানার ব্যবহার করি।

এখানে একটি উদাহরণ:

0 6 * * * cd /var/www/apps/your_app/current; ./script/runner --environment production 'EmailSubscription.send_email_subscriptions' >> /var/www/apps/your_app/shared/log/send_email_subscriptions.log 2>&1

আপনি যদি আপনার ডাটাবেসের সাথে সংযোগের জন্য সঠিক কনফিগারেশন ফাইলগুলি লোড করেন তবে এটি করার জন্য খাঁটি-রুবি স্ক্রিপ্টও লিখতে পারেন।

স্মৃতি মূল্যবান হলে একটি জিনিস মনে রাখবেন তা হ'ল স্ক্রিপ্ট / রানার (বা 'রেক টাস্ক যা' পরিবেশের উপর নির্ভর করে) পুরো রেল পরিবেশকে লোড করবে। আপনার যদি কেবল ডাটাবেসে কিছু রেকর্ড সন্নিবেশ করতে হয় তবে এটি মেমরিটি আপনাকে ব্যবহার করবে না। আপনি যদি নিজের স্ক্রিপ্টটি লিখেন তবে আপনি এড়াতে পারেন। আমার এখনও এটি করার দরকার নেই, তবে আমি এটি বিবেচনা করছি।


8

ব্যবহারের Craken (মই দিয়া আহরণ করা কেন্দ্রিক cron কাজ)


1
ক্রোন
জব

1
এটি কঠিন নয় - তবে একটি দলে কাজ করার সময় এগুলিকে গিটে সংরক্ষণ করা এবং সর্বদা আপ-টু ডেট রাখার বিষয়টি একটি বড় প্লাস।
থাইবাট ব্যারিয়ার

5

আমি ব্যাকগ্রাউন্ডআরবি ব্যবহার করি।

http://backgroundrb.rubyforge.org/

আমি এটি নির্ধারিত কাজগুলি চালানোর জন্য এবং সেইসাথে সাধারণ ক্লায়েন্ট / সার্ভারের সম্পর্কের জন্য খুব বেশি সময় নেয় এমন কাজগুলি চালাতে ব্যবহার করি।


3

আমি কীভাবে আমার ক্রোন কার্যগুলি সেটআপ করেছি তা এখানে। আমার কাছে একটি এসকিউএল ডাটাবেস (রেক ব্যবহার করে) এর প্রতিদিনের ব্যাকআপগুলি তৈরি করতে হবে এবং অন্যটিতে মাসে একবার ক্যাশে শেষ হবে। যে কোনও আউটপুট ফাইল লগ / ক্রোন_লগে লগ হয়। আমার ক্রোনটব এর মতো দেখাচ্ছে:

crontab -l # command to print all cron tasks
crontab -e # command to edit/add cron tasks

# Contents of crontab
0 1 * * * cd /home/lenart/izziv. whiskas.si/current; /bin/sh cron_tasks >> log/cron_log 2>&1
0 0 1 * * cd /home/lenart/izziv.whiskas.si/current; /usr/bin/env /usr/local/bin/ruby script/runner -e production lib/monthly_cron.rb >> log/cron_log 2>&1

প্রথম ক্রোন টাস্কটি প্রতিদিনের ডিবি ব্যাকআপ করে। ক্রোন_টাস্কের সামগ্রীগুলি নিম্নলিখিত:

/usr/local/bin/rake db:backup RAILS_ENV=production; date; echo "END OF OUTPUT ----";

দ্বিতীয় কাজটি পরে সেটআপ করা হয়েছিল এবং মাসে একবার ক্যাশে শেষ হওয়ার জন্য স্ক্রিপ্ট / রানার ব্যবহার করে (lib / মাসিক_ক্রোন.আরবি):

#!/usr/local/bin/ruby
# Expire challenge cache
Challenge.force_expire_cache
puts "Expired cache for Challenges (Challenge.force_expire_cache) #{Time.now}"

আমি অনুমান করি যে আমি অন্য কোনও উপায়ে ডাটাবেস ব্যাকআপ করতে পারি তবে এখনও পর্যন্ত এটি আমার পক্ষে কার্যকর হয় :)

পাথ মই দিয়া আহরণ এবং রুবি বিভিন্ন সার্ভারে পরিবর্তিত হতে পারে। আপনি যেগুলি ব্যবহার করে তা দেখতে পাচ্ছেন:

whereis ruby # -> ruby: /usr/local/bin/ruby
whereis rake # -> rake: /usr/local/bin/rake

3

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

মনে রাখবেন যে রেসেক হ'ল একটি মৃত প্রকল্প (সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়নি), তাই সাইডিকিক একটি উপায়ের বিকল্প। এটি আরও পারফরম্যান্ট: সাইডিকিক একক, মাল্টিথ্রেড প্রক্রিয়াতে একাধিক কর্মী চালাচ্ছেন এবং রেসেক প্রতিটি কর্মী পৃথক প্রক্রিয়াতে চালাচ্ছেন।


এটি একটি সঠিক উত্তর। অনেক চমৎকার বৈশিষ্ট্য, যে sidekiq বা resque ওয়েব ইন্টারফেসের মত প্রদান, পর্যবেক্ষণ কী ঘটছে তা সম্পর্কে ভুলে যেতে পারেন: অনন্য শ্রমিকদের জন্য সহজেই পুনরায় আরম্ভ, লক কাজ সংখ্যা, চলমান ব্যর্থ বা নির্ধারিত, রোধ এবং সীমিত, ইত্যাদি
দিমিত্রি Polushkin

3

আমি যে প্রকল্পগুলিতে কাজ করছি তার জন্য আমি সম্প্রতি কিছু ক্রোন জব তৈরি করেছি।

আমি খুঁজে পেয়েছি যে মণি ক্লকওয়ার্ক খুব দরকারী।

require 'clockwork'

module Clockwork
  every(10.seconds, 'frequent.job')
end

আপনি এই মণিটি ব্যবহার করে আপনার পটভূমির কাজটিও নির্ধারণ করতে পারেন। ডকুমেন্টেশন এবং আরও সহায়তার জন্য https://github.com/Rykian/ ਕਲਾ ্কওয়ার্ক দেখুন



2

একবার আমাকে একই সিদ্ধান্ত নিতে হয়েছিল এবং আমি আজ সেই সিদ্ধান্তে সত্যই খুশি। রেসিউ শিডিয়ুলারটি ব্যবহার করুন কারণ কেবলমাত্র কোনও পৃথক রেডিস আপনার ডিবি থেকে বোঝা নেবে না, আপনার কাছে রিসেক-ওয়েবের মতো অনেকগুলি প্লাগইন অ্যাক্সেস থাকতে পারে যা দুর্দান্ত ইউজার ইন্টারফেস সরবরাহ করে। আপনার সিস্টেমটি বিকাশের সাথে সাথে আপনার শিডিউল করার আরও এবং আরও বেশি কাজ করতে হবে যাতে আপনি সেগুলি একক জায়গা থেকে নিয়ন্ত্রণ করতে সক্ষম হবেন।


1

সম্ভবত এটি করার সর্বোত্তম উপায় হ'ল আপনার প্রয়োজনীয় কাজগুলি লেখার জন্য রেক ব্যবহার করা এবং কেবল কমান্ড লাইনের মাধ্যমে এটি সম্পাদন করা।

আপনি রেলকাস্টে একটি খুব সহায়ক ভিডিও দেখতে পারেন

এই অন্যান্য সংস্থানগুলিও একবার দেখুন:


এই টিউটোরিয়ালে সিনট্যাক্সটি ব্যবহার করতে আমি ব্যর্থ চেষ্টা করেছি। টাস্ক কার্যকর করা হয়নি।
তাস

1

আমি ক্লকওয়ার্ক মণি ব্যবহার করেছি এবং এটি আমার পক্ষে বেশ ভাল কাজ করে। এছাড়াও clockworkdরত্ন রয়েছে যা স্ক্রিপ্টকে ডেমন হিসাবে চালানোর অনুমতি দেয়।


0

আমি সত্যিই নিশ্চিত নই, আমার ধারণা এটি কাজটির উপর নির্ভর করে: কতবার চালানো যায়, কতটুকু জটিল এবং রেল প্রকল্পের সাথে কতটা সরাসরি যোগাযোগের প্রয়োজন হয় ইত্যাদি। আমার ধারণা যদি কেবল "একটি সেরা উপায়" থাকত তবে কিছু করতে , এটি করার মতো অনেকগুলি ভিন্ন উপায় ছিল না।

একটি রেলস প্রকল্পে আমার শেষ কাজটিতে, আমাদের একটি ব্যাচের আমন্ত্রণ মেলার তৈরি করা দরকার (সার্ভে আমন্ত্রণ, স্প্যামিং নয়) যা সার্ভারের সময় যখনই পরিকল্পনাযুক্ত মেইলগুলি প্রেরণ করা উচিত। আমি মনে করি যে আমি তৈরি করা রেক টাস্কগুলি চালাতে আমরা ডেমন সরঞ্জামগুলি ব্যবহার করব।

দুর্ভাগ্যক্রমে, আমাদের সংস্থার কিছু অর্থ সমস্যা ছিল এবং মূল প্রতিদ্বন্দ্বী দ্বারা এটি "কেনা" হয়েছিল যাতে প্রকল্পটি কখনই শেষ হয়নি, তাই আমরা জানি না যে আমরা শেষ পর্যন্ত কী ব্যবহার করতাম।


0

আমি ক্রোন চালানোর জন্য স্ক্রিপ্ট ব্যবহার করি, এটি ক্রোন চালানোর সেরা উপায়। ক্রোন এর জন্য এখানে কিছু উদাহরণ দেওয়া হয়েছে,

ক্রোনট্যাব খুলুন -> সুডো ক্রন্টব -e

এবং বেলো লাইনগুলি পেস্ট করুন:

00 00 * * * উইজেট https: // আপনার_হোস্ট / কিছু_API_end_Point

এখানে কিছু ক্রোন ফর্ম্যাট, আপনাকে সাহায্য করবে

::CRON FORMAT::

ক্রোন বিন্যাস টেবিল

Examples Of crontab Entries
15 6 2 1 * /home/melissa/backup.sh
Run the shell script /home/melissa/backup.sh on January 2 at 6:15 A.M.

15 06 02 Jan * /home/melissa/backup.sh
Same as the above entry. Zeroes can be added at the beginning of a number for legibility, without changing their value.

0 9-18 * * * /home/carl/hourly-archive.sh
Run /home/carl/hourly-archive.sh every hour, on the hour, from 9 A.M. through 6 P.M., every day.

0 9,18 * * Mon /home/wendy/script.sh
Run /home/wendy/script.sh every Monday, at 9 A.M. and 6 P.M.

30 22 * * Mon,Tue,Wed,Thu,Fri /usr/local/bin/backup
Run /usr/local/bin/backup at 10:30 P.M., every weekday. 

আশা করি এটা তোমাকে সাহায্য করবে :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.