কোন ক্রোন লিপিটি চালানো ভাল? cron.php বা cron.sh


27

ম্যাজেন্টো তার মূল ডিরেক্টরিতে দুটি ক্রোন স্ক্রিপ্ট সরবরাহ করে, ক্রোন.এফপি এবং ক্রোন.এস.

কোনটি চালানো ভাল এবং কেন?

উত্তর:


31

Cron.sh চালানো ভাল হবে

ম্যাজেন্টো EE 1.13.x এবং সিই 1.8.x হিসাবে, ক্রোন যান্ত্রিকগুলি পরিবর্তিত হয়েছে যেখানে ম্যাজেন্টো একটি নতুন শিডিউলিং মোড ফাংশন চালু করেছে।

দুটি উপলভ্য মোড রয়েছে: 1. ডিফল্ট - নির্ধারিত ক্রোনগুলি চালায়। ২. সর্বদা - নাম অনুসারে ক্রোন ট্রিগার হওয়ার সাথে সাথে এই কাজগুলি নিঃশর্তভাবে কার্যকর করা হবে এবং স্পষ্টভাবে সংজ্ঞায়িত শিডিয়ুলের প্রয়োজন হবে না।

মূলত কোন পরামিতি ছাড়াই cron.php বলা হচ্ছে cron.sh এর দুটি প্রক্রিয়া সম্পাদন করতে শেল_এক্সেক ব্যবহার করে। প্রতিটি আলাদা প্যারামিটার সহ ("ডিফল্ট" বা "সর্বদা")। ক্রোন.শ পরবর্তীতে এই প্যারামিটারটিকে ক্রোন.ফ্পে ফিরে যায় যা ক্রোনকে কার্যকর করে। অভ্যন্তরীণভাবে ম্যাজেন্টো দুটি ডিফল্ট প্রক্রিয়া করতে তার ইভেন্ট অবকাঠামো ব্যবহার করে "ডিফল্ট" এবং "সর্বদা" নামগুলি সহ ইভেন্টগুলি প্রেরণ করে। Mage_Cron এর পরে দুটি পর্যবেক্ষক পদ্ধতি প্রয়োগ করে।

ক্রোন.এফপি দেখে আপনি পিএইচপি ফাংশন শেল_এক্সেকের ব্যবহার লক্ষ্য করবেন। সুরক্ষা উদ্বেগ ছাড়াও, কোনও ত্রুটি দেখা দিলে বা প্রোগ্রামটি কোনও আউটপুট না এনে ফাংশনটি NUL উভয়ই ফিরিয়ে দিতে পারে। এই ফাংশনটি ব্যবহার করে কার্যকর করা ব্যর্থতা সনাক্ত করা সম্ভব নয়। এর অর্থ হ'ল যে কোনও নির্দিষ্ট সময়ে যখন আপনার স্ক্রিপ্ট / কোড কোনও ত্রুটির কারণে ব্যর্থ হয়, নিম্নলিখিতটি ঘটে: ১. ক্রোনজব বাসি হয়ে যায়, ২. কোনও ত্রুটি রেকর্ড করা হয়নি, ৩. এবং কেউ জানে না যে এর কোনওটি ঘটেছে।

এটি কাটিয়ে উঠতে, নিম্নলিখিত ক্রোনজবস যুক্ত করা উচিত:

*/5 *   * * *   www-data /bin/sh /path/to/magento/cron.sh cron.php -m=default
*/5 *   * * *   www-data /bin/sh /path/to/magento/cron.sh cron.php -m=always

এটি নিশ্চিত করবে যে ফ্যালব্যাক পিএইচপি ফাংশন শেল_এক্সেক ব্যবহার না করে প্রক্রিয়া মোডগুলি সর্বদা চলতে থাকবে এবং কোনও ত্রুটি দেখা দিলে ক্রোনটি বাসি হয়ে উঠবে না কারণ তার ব্যতিক্রম ছড়িয়ে দেওয়া হয়।


কেবল যুক্ত করতে যাচ্ছি যে উপরে নমুনা ক্রোন এক্সপ্রেশনটি বেশ জেনেরিক। www-dataব্যবহারকারীরা ওয়েব সার্ভার প্রক্রিয়া চালিয়ে যাই তা পরিবর্তন করতে পারে। এছাড়াও অনেক সিপানেল / ডাব্লুএইচএম হোস্টিং সেটআপগুলির জন্য, shell_exec()অক্ষম হতে চলেছে তা লক্ষণীয় ।
pspahn

*/5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=default */5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=alwaysএবং এই আদেশগুলি নূপুর ওয়ালিয়ার দ্বারা "কমান্ড খুঁজে পাওয়া যায় না" ত্রুটি দেয়
অমিত বেরা

যদি আপনি এই ত্রুটিটি পান তবে আপনাকে 3 টি জিনিস পরীক্ষা করতে হবে: 1) www-ডেটা সেই সার্ভারে সঠিক ব্যবহারকারী যা এই প্রক্রিয়াটি চালাতে পারে, অন্যথায় এটি ব্যবহারকারী যেভাবেই পরিবর্তন করুন। ২) শ এর অবস্থান পরীক্ষা করুন, সুতরাং "কোন শ" চালান এবং এটির অবস্থান নির্ধারণ করা উচিত, এটি যদি অন্য কোনও পথ হয় তবে এটি "/ বিন / শ" প্রতিস্থাপন করবে। 3) অবশেষে পরীক্ষা করুন যে ক্রোন.শ করার পথটি আসলে সঠিক।
শাগান

@ অমিতবেরা আমি একই ত্রুটি বার্তা পাচ্ছিলাম এবং এটি www-ডেটা, রুট বা অন্য কোনও ব্যবহারকারীর সাথে কাজ করতে পারিনি। আমি আসলে ব্যবহারকারীর বাদ দিয়েছি এবং এটি এখন কাজ করে*/5 * * * * /bin/sh /path/to/magento/cron.sh cron.php -m=default
মাইকেল

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