ম্যাজেন্টো 2: ক্রোন কার্যকর করুন


11

আমি কীভাবে ক্রমান ক্রমানুসারে কমান্ড লাইন থেকে কার্যকর করতে পারি

ম্যাজেন্টো 1.x এ আমরা ক্রোন যেমন চালাতে পারি:

www.testsite.com/cron.php 

তবে ম্যাজেন্টো 2 এ আমি কীভাবে এটি করতে পারি?

আমি কীভাবে সেন্টিমিডি থেকে ক্রোন চালাতে পারি তার জন্য দয়া করে আমাকে সহায়তা করুন। আমি ইতিমধ্যে কমান্ডের নীচে ব্যবহার করেছি যা কাজ করছে না:

sudo php bin/magento cron:run [--group="customgroupname_cron"]

এটি ব্যতিক্রম ফিরে:

[RuntimeException]   
Too many arguments.  

cron:run [--group="..."] [--bootstrap="..."]

------- হালনাগাদ -------

crontab.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">

    <group id="customgroupname_cron">
        <job name="customgroupname_cron" instance="Namespace\Modulename\Cron\Customcronjob" method="execute">
            <schedule>* * * * *</schedule>
        </job>
    </group>
</config>

উপরের ফাইলটি কার্যকর করার পদ্ধতিতে আমি লগ রাখি। তবে 1 মিনিটের পরে এটিও উত্পন্ন হয় না o সুতরাং আমি কীভাবে জানতে পারি যে আমার পদ্ধতিটি কার্যকর হয়েছে।


আমার কাছে মনে হচ্ছে, আপনার মতো এখনও আপনি তাদের
চালিয়ে নিতে পারেন ম্যাজে

উত্তর:


17

কমান্ডটি চালানোর সময় আপনার বন্ধনীগুলির প্রয়োজন নেই যাতে আপনার চালানো উচিত:

sudo php bin/magento cron:run --group="customgroupname_cron"

হ্যাঁ এটি একটি প্রতিক্রিয়া দিচ্ছে যে "সময়সূচী অনুসারে চাকরি করুন"। তবে দয়া করে আমার আপডেট হওয়া সারিটি দেখুন।
কৃপালি

4

আমি এই পোস্ট থেকে অন্যান্য উত্তরগুলি কিছুটা মার্জ করেছি - যাতে কেবল একটি ফাইল প্রয়োজন হয় এবং ব্রাউজার বা কমান্ড লাইনের মাধ্যমে ক্রোন জবগুলি চালানো যায়।

কমান্ড লাইনের মাধ্যমে ব্যবহার:

php cronLaunch.php "Vendor\Module\Class"

ব্রাউজারের মাধ্যমে ব্যবহার:

https://my.domain/hidden/cronLaunch.php?Vendor\Module\Class

স্থাপন

আমি নীচে থেকে উত্স কোডটি অনুলিপি করতে এবং এটিতে সঞ্চয় করার পরামর্শ দিচ্ছি src/pub/hidden/cronLaunch.phphiddenডিরেক্টরিটি কোনও অননুমোদিত অ্যাক্সেস থেকে রক্ষা করা খুব গুরুত্বপূর্ণ !

<?php
require '../../app/bootstrap.php';
if (php_sapi_name() !== 'cli' && isset($_GET['job'])) {
    define('CRONJOBCLASS', $_GET['job']);
} elseif (php_sapi_name() !== 'cli') {
    die('Please add the class of the cron job you want to execute as a job parameter (?job=Vendor\Module\Class)');
} elseif (!isset($argv[1])) {
    die('Please add the class of the cron job you want to execute enclosed IN DOUBLE QUOTES as a parameter.' . PHP_EOL);
} else {
    define('CRONJOBCLASS', $argv[1]);
}

class CronRunner extends \Magento\Framework\App\Http
    implements \Magento\Framework\AppInterface
{

    public function __construct(
        \Magento\Framework\App\State $state,\Magento\Framework\App\Response\Http $response)
    {
        $this->_response = $response;
        $state->setAreaCode('adminhtml');
    }

    function launch()
    {
        $cron = \Magento\Framework\App\ObjectManager::getInstance()
            ->create(CRONJOBCLASS);

        $cron->execute();
        return $this->_response;
    }
}

$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$app = $bootstrap->createApplication('CronRunner');
$bootstrap->run($app);

এখানে উত্তর পোস্ট করা অন্য সমস্ত লোককে ধন্যবাদ এবং ক্রেডিট!


3
cron:run [--group="..."] [--bootstrap="..."]

[]একটি কমান্ড লাইন প্রোটোটাইপ মধ্যে বন্ধনী নিছক নির্দেশ করে যে আর্গুমেন্ট সেগুলির মধ্যে উপস্থিত ঐচ্ছিক।
এই ক্ষেত্রে, এটিও বলে যে তারা চেইনযোগ্য।

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