crontab समय-सारणी कार्य संयंत्र
workerman/crontab
विवरण
workerman/crontab
लिनक्स के crontab की तरह है, लेकिन workerman/crontab
में सेकंड के स्तर पर समय-सारणी का समर्थन किया जाता है।
समय विवरण:
0 1 2 3 4 5
| | | | | |
| | | | | +------ सप्ताह का दिन (0 - 6) (रविवार=0)
| | | | +------ महीना (1 - 12)
| | | +-------- महीने का दिन (1 - 31)
| | +---------- घंटा (0 - 23)
| +------------ मिनट (0 - 59)
+-------------- सेकंड (0-59) [छोड़े जा सकते हैं, यदि 0 नहीं है, तो न्यूनतम समय-संतुलन मिनट का होता है]
परियोजना पता
https://github.com/walkor/crontab
स्थापना
composer require workerman/crontab
उपयोग
चरण 1: प्रक्रिया फ़ाइल process/Task.php
नई बनाएं
<?php
namespace process;
use Workerman\Crontab\Crontab;
class Task
{
public function onWorkerStart()
{
// हर सेकंड एक बार चलाएं
new Crontab('*/1 * * * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
// हर 5 सेकंड में एक बार चलाएं
new Crontab('*/5 * * * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
// हर मिनट एक बार चलाएं
new Crontab('0 */1 * * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
// हर 5 मिनट में एक बार चलाएं
new Crontab('0 */5 * * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
// हर मिनट का पहला सेकंड चलाएं
new Crontab('1 * * * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
// दिन के 7 बजे 50 मिनट को चलाएं, ध्यान दें कि यहां सेकंड पोज़िशन को छोड़ दिया गया है।
new Crontab('50 7 * * *', function(){
echo date('Y-m-d H:i:s')."\n";
});
}
}
चरण 2: वेबमैन के साथ प्रक्रिया फ़ाइल कॉन्फ़िगर करें
config/process.php
फ़ाइल खोलें, निम्नलिखित कॉन्फ़िगरेशन जोड़ें
return [
....अन्य कॉन्फ़िगरेशन, यहाँ छोड़ दिया....
'task' => [
'handler' => process\Task::class
],
];
चरण 3: वेबमैन को पुनः आरंभ करें
ध्यान दें: समय-सारणी कार्यों को तुरंत नहीं चलाया जाएगा, सभी समय-सारणी के कार्य अगले मिनट में ही शुरू होंगे
विवरण
crontab असमंग्रस्त नहीं है, उदाहरण के लिए, एक कार्य प्रक्रिया में A और B दो टाइमरों को सेट किया गया है, दोनों ही प्रति सेकंड एक बार कार्यों को करते हैं, लेकिन A कार्य 10 सेकंड लेता है, तो फिर B को A पूर्ण होने तक प्रतीक्षा करनी पड़ेगी, जिससे B के चलने में देरी हो सकती है।
यदि व्यापार समय अंतर के लिए संवेदनशील है, तो समय-सारणी कार्य को अलग प्रक्रियाओं में चलाना चाहिए, जिससे अन्य कार्यों पर प्रभाव डाला न जा सके। उदाहरण config/process.php
में निम्नलिखित विन्यास करें
return [
....अन्य कॉन्फ़िगरेशन, यहाँ छोड़ दिया....
'task1' => [
'handler' => process\Task1::class
],
'task2' => [
'handler' => process\Task2::class
],
];
समय संवेदनशील कार्यों को process/Task1.php
में रखें, अन्य समय-सारणी कार्यों को process/Task2.php
में रखें
अधिक
अधिक config/process.php
विवरण कॉन्फ़िगरेशन के लिए कृपया देखें कस्टम प्रक्रिया