আমাদের প্রোডাকশন সার্ভার ক্রোন সহ একটি সমস্যা নিয়ে চলছে। ক্রোন প্রতি 5 মিনিটের মধ্যে কার্যকর হয় যা বেশিরভাগ সময় কাজ করে, তবে আমি এমন একটি সমস্যার মুখোমুখি হয়েছি যার দ্বারা কোনও কাজ প্রক্রিয়া করতে 6 মিনিট সময় নিতে পারে। 10 মিনিট শেষ না হওয়া পর্যন্ত দ্বিতীয় 6 মিনিটের কাজের ব্যবস্থা করা হবে না এবং তাড়াতাড়ি বা পরে এটি একটি সমস্যা হতে চলেছে।
আগত অনুরোধগুলি শোনার জন্য আমি সি তে একটি ফোরকিং ডেমন লেখার তদন্ত করেছি - তবে এটিও সমস্যাযুক্ত কারণ এটির অর্থ অন্য একটি এপিআই এন্ডপয়েন্ট লেখা এবং বিকাশের সময় চিবানো।
একটি সহজ সমাধান বলে মনে হচ্ছে যা আমি খুঁজে পেয়েছি এবং সমালোচনা / সমালোচনা খুঁজছি:
সরলতার জন্য, একটি পিএইচপি সিএলআই একটি চাকরী অপেক্ষা করছে কিনা তা নির্ভর করে 1 বা 0 আউটপুট দেবে:
<?php echo "1" ?>
একটি বাশ স্ক্রিপ্ট কাতারে কোনও কাজ আছে কিনা তা পরীক্ষা করতে সক্ষম:
#!/bin/bash
var=$(php -f ../readPhpOutput/testOutput.php)
if [ "$var" -eq "0" ]
then
echo "input zero"
else
echo "input not zero"
fi
sleep 10
উপরের স্ক্রিপ্টটি চলমান রয়েছে তা নিশ্চিত করার জন্য নোহপ সহ আরও একটি বাশ স্ক্রিপ্ট চলছে:
#!/bin/bash
while true
do
value=$(ps -A | grep [r]eadPhpOutput)
echo "grep output is: $value"
if [ -z "$value" ]
then /bin/bash ../readPhpOutput/./readPhpOutput.sh &
fi
sleep 5
done
দয়া করে নোট করুন যে আমি কী অর্জন করতে চাইছি তা বর্ণনা করার জন্য উপরেরগুলি সহজ, নির্বোধ উদাহরণ।
ডেমন লিখতে না চাওয়ার প্রধান কারণ হ'ল সিটির সাথে অনভিজ্ঞতা, আমার প্রোডাকশন সার্ভারে কাঁটাচামচ বোমা ফেলার ভয় এবং একই সার্ভারে একটি সংকলক ইনস্টল করতে অনীহা।