আমি প্রায় 3 দিন অতিবাহিত করেছি এবং নির্ধারিত কাজগুলি প্রক্রিয়া করার জন্য ম্যাজেন্টো ক্রোনকে বুঝতে এবং তৈরি করতে সক্ষম নই। আমি ম্যাজেন্টো ১.৯.১.০ চালাচ্ছি এবং সম্প্রতি লক্ষ্য করেছি যে তাত্ক্ষণিকভাবে প্রেরণের পরিবর্তে অর্ডার ইমেলগুলি এখন সারিবদ্ধ। আমি প্রয়োজনীয়তাটি বুঝতে পারি তবে সারিগুলি বাছাই করতে সিস্টেমটি তৈরি করতে সক্ষম হয় না।
ক্রোনজব এর জন্য আমার দেখার বিষয়টি এখানে।
এই আমার ক্রোনজব কমান্ড লাইন।
ক্রোন_স্কেডুল টেবিলটিতে কীভাবে কার্যগুলি তৈরি করা হয় তা এখানে।
যেহেতু রেকর্ডগুলি ক্রোন_স্কেডুল টেবিলটিতে তৈরি করা হয়েছে আমার ধারণা ক্রোন প্রতি 5 মিনিটে একবার চলছে is যদি আমি পিএইচপিএমএইডমিনের মাধ্যমে এই রেকর্ডগুলি ম্যানুয়ালি মুছে ফেলি তবে কিছু সময় পরে রেকর্ডগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়।
তবে কার্যগুলির স্থিতি 'মুলতুবি' থেকে যায় এবং কখনই সম্পূর্ণ হয় না। নিশ্চিত না যে আমার কনফিগারেশনে কিছু ভুল হয়েছে বা আমি কিছু মিস করছি। কেউ কি দয়া করে নির্ধারিত টাস্কটি সময়মতো চালানোর জন্য আমাকে সহায়তা করতে পারেন। এছাড়াও কেন একটি কাজের কোডের জন্য একাধিক রেকর্ড তৈরি করা হয়?
হালনাগাদ
আমি পুরো টেবিলটি সাফ করে দিয়েছি এবং ক্রোন নির্ধারিত কাজগুলি তৈরি করেছে। সমস্ত কাজগুলি মুলতুবি অবস্থায় রয়েছে এবং 60 মিনিটের বেশি অপেক্ষা না করে কখনও চালায় না। ম্যাজেন্টো 1.9.1 তে কিছু ভুল
আপডেট 11/02: আজ আমি প্রক্রিয়াটি সম্পর্কে আরও কিছু বিশ্লেষণ করেছি।
আমি নীচে হিসাবে cron.php সম্পাদনা করেছি
echo 'iam before mdefault 1';
shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &");
echo 'iam before malways 1';
shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &");
echo 'i returned success';
আমি নীচে হিসাবে Mage_Cron_Model_Oserser ক্লাস সম্পাদনা করেছি
public function dispatch($observer) {
echo 'iam inside dispath';
আমার বোধগম্যতা ছিল যখন ক্রোন যখন -Mdefault চালায় তখন এটি প্রেরণ ফাংশনটি কল করা উচিত এবং কার্যকর হবে exec তবে যা ঘটেছিল তা ক্রোন আউটপুটে নীচে ছিল।
Content-type: text/html
iam before mdefault 1iam before malways 1i returned success
এর অর্থ এটি প্রেরণটিকে এটল বলা হয় না ...
একে অপরকে চেষ্টা করুন
আমি ম্যানুয়ালি ভেরিয়েবল পরিবর্তন করেছি $isShellDisabled = true;
এবং আমি ক্রোন.এফপিতে নীচে পরিবর্তন করেছি।
if ($isShellDisabled) {
echo 'before always';
Mage::dispatchEvent('always');
echo 'after always';
Mage::dispatchEvent('default');
echo 'after default';
} else {
Mage::dispatchEvent($cronMode);
}
উপরের ক্রোন আউটপুট নীচের মত
Content-type: text/html
before alwaysiam inside dispath alwaysafter always
এখন এটি 'প্রেরণআলওয়েজ' বলছে কিন্তু 'প্রেরণ' নয়
উত্তরগুলির কোনওটিই আমাকে সাহায্য করে না। এটি তফসিলযুক্ত কাজগুলি কখনই পছন্দ করে না। অর্থাৎ ক্রোন যখন প্রথমবারের জন্য চালায় তখন এটি সারণীতে কার্যগুলি সফলভাবে তৈরি করে। তবে এটি কখনই কার্য সম্পাদন করে না।
*/5 * * * * /bin/sh PATH_TO_PRODUCTION/cron.sh
যদি পাওয়া যায় তবে ব্যাশ স্ক্রিপ্টটি ব্যবহার করে দেখুন ।
cron_schedule
টেবিল খালি করার চেষ্টা করেছেন ? এটি এক ঘন্টা বা তার পরে নতুন কার্যগুলিতে পূর্ণ হয়ে গেছে কিনা তা দেখুন