ম্যাজেন্টো 1.9.1 ক্রোন_শেজুল চিরকালের জন্য নেওয়া হয় না


12

আমি প্রায় 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

এখন এটি 'প্রেরণআলওয়েজ' বলছে কিন্তু 'প্রেরণ' নয়

উত্তরগুলির কোনওটিই আমাকে সাহায্য করে না। এটি তফসিলযুক্ত কাজগুলি কখনই পছন্দ করে না। অর্থাৎ ক্রোন যখন প্রথমবারের জন্য চালায় তখন এটি সারণীতে কার্যগুলি সফলভাবে তৈরি করে। তবে এটি কখনই কার্য সম্পাদন করে না।


আপনি যখন কোনও ওয়েব ব্রাউজার থেকে cron.php চালাবেন তখন কি হবে? এটি একটি ফাঁকা পৃষ্ঠা হবে, তবে আমি বলতে চাইছি আপনার ক্রোন কার্যগুলিতে কী ঘটে?
সীনব্রিডেন

*/5 * * * * /bin/sh PATH_TO_PRODUCTION/cron.shযদি পাওয়া যায় তবে ব্যাশ স্ক্রিপ্টটি ব্যবহার করে দেখুন ।
ফিল বার্নি

@ স্যানব্রিডেন, আমি যখন ব্রাউজারে ইউআরএল দিয়ে চালিত করি তখন এটি একটি ফাঁকা পৃষ্ঠা দেখায়। কার্যগুলিতে কিছুই ঘটেনি .. আমি তৈরি করা কাজের নতুন সেটটি নিয়ে প্রশ্নটি আপডেট করেছি ...
মালাইসেলভান

@ ফিলবি, .শ কোনও পার্থক্য রাখে না। এটি অনুরূপ মুলতুবি থাকা কাজগুলি চিরতরে মুলতুবি রয়েছে তবে আমি নিশ্চিত যে প্রতি 5 মিনিটের মধ্যে ক্রোন চলমান।
মালাইসেলভান

আপনি cron_scheduleটেবিল খালি করার চেষ্টা করেছেন ? এটি এক ঘন্টা বা তার পরে নতুন কার্যগুলিতে পূর্ণ হয়ে গেছে কিনা তা দেখুন
স্যান্ডার ম্যানগেল

উত্তর:


3

এটি ক্রোন জবসের পিএইচপি সংস্করণ ছিল।

পিএইচপি সংস্করণটি সাইটের জন্য সঠিকভাবে সেট করা হয়েছিল যার কারণে এটি কাজ করছে; তবে ক্রোন জবস সার্ভার নেটিভ পিএইচপি 5.3 এ চলছিল তাই আমি ক্রোন চালানোর সময়ই ত্রুটিগুলি পেয়েছিলাম। আমি 5.5 সংস্করণে আপডেট করেছি।

পরিবর্তিত ক্রোন কমান্ড:

php /home/mydomainname/public_html/cron.php
to
php55 /home/mydomainname/public_html/cron.php

বা হোস্টগেটরে:

/opt/php55/bin/php /home/mydomainname/public_html/cron.php

in cron.php

$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;

এই লাইনের পরে, যুক্ত করুন:

$isShellDisabled = true;

নির্দিষ্ট পিএইচপি সংস্করণে ক্রোন.এফপি চালানোর উল্লেখ (আমার ক্ষেত্রে ইএ-পিএইচপি 70) আমি যে সমস্যার মধ্যে চলেছিলাম তা স্থির করে: php -vটার্মিনালটি কোন পিএইচপি সংস্করণটি ব্যবহার করছে তা দেখতে টার্মিনালে রান করুন । আমার ক্ষেত্রে এটি ছিল 5.6। সুতরাং আমাকে পিএইচপি 7.0 এর ব্যবহারটি পরিবর্তন করে জোর phpকরতে ea-php70হয়েছিল crontab -e। ধন্যবাদ!
দান ভ্যান ডেন বার্গ

2

আপনি cron_scheduleটেবিল খালি করার চেষ্টা করেছেন ? এটি এক ঘন্টা বা তার বেশি পরে নতুন কার্যগুলিতে পূর্ণ হয়ে গেছে কিনা তা পরীক্ষা করুন।

এছাড়াও আপনি নির্দিষ্ট ক্রোনজবস নিষ্ক্রিয় করতে Aoe_Scheduler ব্যবহার করতে পারেন । দেখুন যে কোনও বিশেষ কারণে ত্রুটি হতে পারে যা অন্য সমস্ত কাজ বন্ধ করে দেয় See

কোনও স্ক্রিপ্টে ম্যাজেন্টো ক্রোনজবস যেভাবে মারাত্মক ত্রুটি স্থাপন করেছে তা সমস্ত কার্য সম্পাদনকে ব্যর্থ করে দেবে


উত্তর করার জন্য ধন্যবাদ. মারাত্মক ত্রুটি কোনও লগে ধরা পড়েছে? আমি আমার মামলায় আরও কয়েকটি অনুসন্ধান আপডেট করেছি এবং আমার প্রশ্নে এটি আপডেট করেছি।
মালাইসেলভান

@ স্যানব্রিডেন: আজ আমি লক্ষ্য করেছি যে আমি যখন ওয়েব ব্রাউজারের মাধ্যমে ক্রোন.এফপি চালু করি তখন সময়সূচী বাছাই করে এটি দুর্দান্ত কাজ করে। এটি প্রমাণ করে যে কোনও স্ক্রিপ্টে কোনও মারাত্মক ত্রুটি নেই। কোনও ধারণা কেন ক্রোনটব দিয়ে ক্রোন চলছে না?
মলাইসেলভান

2

প্রথম পদক্ষেপ হিসাবে আমি আপনার সেটিংসটি ম্যাজেন্টোর ডিফল্ট ক্রোন সেটিংসে ফিরে যাওয়ার পরামর্শ দেব:

ম্যাজেন্টো ক্রোন ডিফল্ট

আপনার বর্তমান সেটিংসে একটি সমস্যা আছে: আপনার সময়সূচি প্রতি 15 মিনিটে উত্পন্ন হয় তবে কেবল 5 মিনিটের জন্য নির্ধারিত হয় যা 10 মিনিটের ব্যবধান ছেড়ে দেয়।


ধন্যবাদ। আমি ডিফল্টতে পুনরায় সেট করার পরেও এটি কাজ করে না। যখন এটি প্রথমবার চালায় এটি নির্ধারিত সময়ের সাথে ক্রোন_সেকডুল টেবিলের সমস্ত কাজ তৈরি করে। কাজগুলি কখনই বাছাই করা হয় না এবং চিরকালের জন্য মুলতুবি হিসাবে টেবিলে থাকে। একটি জিনিস আমি সেট করার পরে লক্ষ্য করেছি $isShellDisabled = true;এবং যখন আমি ব্রাউজারের মাধ্যমে ক্রোন.এফপি চালু করি তখন কাজগুলি ক্রোনট্যাবের মাধ্যমে নেওয়া হয় না।
মালাইসেলভান

এই সমস্যাটি এখনও সমাধান হয়নি। আমার হোস্টিং সরবরাহকারীর সাথে কি কোনও সমস্যা হবে? আমি স্ক্রিপ্টটি নিয়মিত বিরতিতে ট্রিগার করে দেখি তবে কেবল চাকরি বাছাই করা হয় না। আমি ১.৮ থেকে হিজরত করার পরেও কি সমস্যা হবে?
মালাইসেলভান

আপনার ক্রোনজবসের কি যথেষ্ট স্মৃতি রয়েছে? ত্রুটিযুক্ত লগগুলি চেষ্টা করে দেখুন সেখানে কিছু আছে যা সাহায্য করতে পারে।
ক্রিস্টফ 21

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

ত্রুটিযুক্ত লগগুলির জন্য @ মালাইসেলভান দয়া করে আপনার সিস্টেম অ্যাডমিন বা ওয়েবহোস্টের সাথে পরীক্ষা করুন কারণ তাদের অবস্থান এবং সার্ভারের ত্রুটি লগটি কীভাবে অ্যাক্সেস করা উচিত তা জানা উচিত। এছাড়াও এটি কমান্ড লাইন থেকে ক্রোন জবটি ম্যানুয়ালি চালাতে সহায়তা করতে পারে - উভয়ই চেষ্টা করে দেখুন php -f cron.phpএবং ./cron.shতারা আরও তদন্তের জন্য কিছু উত্পন্ন করে কিনা তা দেখুন।
ক্রেস্টফ ফুমন

1

আমার জন্য একই সমস্যা।

"খুব দেরী ..." ত্রুটি পাওয়া গেছে।

cron_scheduleটেবিল পরিষ্কার করার পরে , ক্রোন.শ কাজ করা বন্ধ করে দিয়েছে (আর নির্ধারিত নয়)।

সমস্ত পুরানো ক্রোন প্রক্রিয়া হত্যা করার পরে কেবল কাজ করেছিল।


আমার ক্ষেত্রে যখন ক্রোন প্রথমবারের জন্য চালায় এটি টেবিলে সফলভাবে কাজগুলি তৈরি করে। তবে এটি কখনই কার্য সম্পাদন করে না। :-(
মালাইসেলভান

1

আমারও একই সমস্যা ছিল। আমার সমস্যা ছিল সময় অঞ্চল নির্দিষ্ট: created_atএবং scheduled_atকলামে cron_scheduleটেবিল ইউটিসি 0 হওয়া উচিত, আমার এন্ট্রি ইউটিসি 2 ছিলেন।

এটি যাচাই করতে আপনি কেবল গতকাল থেকে created_atএবং scheduled_atগত তারিখগুলি নির্ধারণ করতে পারেন এবং পরবর্তী ক্রোন শিডিউল অবধি অপেক্ষা করতে পারেন ।

আশা করি যে কাউকে সাহায্য করবে!


1

ব্লুহোস্টে, ক্রোন.শ চেঞ্জ

 PHP_BIN=`which php`

প্রতি

 PHP_BIN="php54s"

ভাগ করা হোস্টিংয়ে ডিফল্টরূপে এটি পিএইচপি 5.2 চালায়।

আমাকেও cron.phpদুটি $isShellDisabledলাইনের পরিবর্তে পরিবর্তন করতে হয়েছিল $isShellDisabled = true;

পিএইচপি সতর্কতা থেকে পরিত্রাণ পেতে, আমি এই লাইনগুলি আগেও যুক্ত করেছি

$_SERVER['SCRIPT_NAME'] = 

if (empty($_SERVER['SCRIPT_FILENAME'])) $_SERVER['SCRIPT_FILENAME'] = '~/public_html/cron.php';
if (empty($_SERVER['SCRIPT_NAME'])) $_SERVER['SCRIPT_NAME'] = '/cron.php';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.