workerman/crontab

विवरण

workerman/crontab एक workerman पर आधारित नियत कार्य कार्यक्रम है, जो linux के crontab के समान है। workerman/crontab सेकंड स्तर की योजना का समर्थन करता है।

workerman/crontab का उपयोग करने के लिए पहले php का समय क्षेत्र सेट करना आवश्यक है, अन्यथा परिणाम अपेक्षित से भिन्न हो सकता है।

समय विवरण

0   1   2   3   4   5
|   |   |   |   |   |
|   |   |   |   |   +------ सप्ताह का दिन (0 - 6) (रविवार=0)
|   |   |   |   +------ महीना (1 - 12)
|   |   |   +-------- महीने का दिन (1 - 31)
|   |   +---------- घंटे (0 - 23)
|   +------------ मिनट (0 - 59)
+-------------- सेकंड (0-59)[छोड़ सकता है, अगर 0 स्थान नहीं है, तो न्यूनतम समय इकाई मिनट है]

स्थापना

composer require workerman/crontab

उदाहरण

<?php
use Workerman\Worker;
require __DIR__ . '/vendor/autoload.php';

use Workerman\Crontab\Crontab;
$worker = new Worker();

// समय क्षेत्र सेट करें, ताकि परिणाम अपेक्षित से भिन्न न हो
date_default_timezone_set('PRC');

$worker->onWorkerStart = function () {
    // हर मिनट के पहले सेकंड में कार्यान्वित करें.
    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";
    });
};

Worker::runAll();

ध्यान दें
नियत कार्य तुरंत कार्यान्वित नहीं होंगे, सभी नियत कार्य अगले मिनट में काम करना शुरू करेंगे।
workerman के टाइमर के समान, सभी कार्य वर्तमान प्रक्रिया में कार्यान्वित होते हैं।
यदि swoole/swow सहकारी नहीं है, तो यदि कार्य पूरा नहीं हुआ है और अगले कार्य के चक्र में आ गया है, तो वर्तमान कार्य पूरा होने का इंतज़ार करेगा, नए कार्य का कार्यान्वयन देरी से होगा।
यदि swoole/swow सहकारी सक्षम है, तो यदि पिछले कार्य को पूरा नहीं किया गया है, तो अगला कार्य तुरंत कार्यान्वित हो सकता है, कतार में इंतज़ार नहीं करेगा।

इंटरफेस

Crontab::destroy()

नियत तंत्र को समाप्त करें

$crontab = new Crontab('1 * * * * *', function(){
    echo date('Y-m-d H:i:s')."\n";
});
$crontab->destroy();