একটি বাশ স্ক্রিপ্টটি ক্রোন জব বা সি ডেমনের বোধগম্য বিকল্প


1

আমাদের প্রোডাকশন সার্ভার ক্রোন সহ একটি সমস্যা নিয়ে চলছে। ক্রোন প্রতি 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

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

ডেমন লিখতে না চাওয়ার প্রধান কারণ হ'ল সিটির সাথে অনভিজ্ঞতা, আমার প্রোডাকশন সার্ভারে কাঁটাচামচ বোমা ফেলার ভয় এবং একই সার্ভারে একটি সংকলক ইনস্টল করতে অনীহা।


1
আপনার 2 য় স্ক্রিপ্টটি মূলত কোনও সার্ভিস ম্যানেজারকে দুর্বলভাবে পুনরায় ইনভেস্ট করে। সিস্টেমড, সুপারভাইজার, মনিটের মতো বিদ্যমান সফ্টওয়্যার একই জিনিস করতে পারে।
মাধ্যাকর্ষণ

আপনাকে ধন্যবাদ - এটি হ'ল ধরণের তথ্য যা আমি সন্ধান করি। এটি বেশ পরিষ্কার যে আমি আমার আরাম অঞ্চল থেকে বাইরে আছি :)
pcgben

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