Magento 2: Jalankan Cron


11

Bagaimana saya bisa menjalankan Cron dari baris perintah secara manual.

Di Magento 1.x kita dapat menjalankan cron seperti:

www.testsite.com/cron.php 

tetapi di Magento 2 bagaimana saya bisa melakukan ini?

Tolong juga bantu saya untuk bagaimana saya bisa menjalankan cron dari cmd. Saya sudah menggunakan perintah di bawah ini yang tidak berfungsi:

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

Ini mengembalikan pengecualian:

[RuntimeException]   
Too many arguments.  

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

------- Perbarui -------

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>

Dalam menjalankan metode file di atas saya menaruh log. Tetapi setelah 1 menit juga itu tidak dihasilkan. Jadi bagaimana saya bisa mengetahui bahwa metode saya dieksekusi.


Sepertinya, bagi saya setidaknya, seperti Anda masih dapat menjalankannya seperti Mage 1 dengan melakukan yoursite.com/update/cron.php
tim.baker

Jawaban:


17

Anda tidak memerlukan tanda kurung saat menjalankan perintah sehingga Anda harus menjalankan:

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

Ya ini memberikan respons yang "Lari pekerjaan sesuai jadwal". Tapi tolong periksa pertanyaan saya yang diperbarui.
Krupali

4

Saya menggabungkan jawaban lain dari posting ini sedikit - sehingga hanya satu file yang diperlukan, dan pekerjaan cron dapat dijalankan melalui browser atau baris perintah.

Penggunaan melalui baris perintah:

php cronLaunch.php "Vendor\Module\Class"

Penggunaan melalui browser:

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

Instalasi

Saya sarankan untuk menyalin kode sumber dari bawah dan menyimpannya di src/pub/hidden/cronLaunch.php. Sangat penting untuk melindungi hiddendirektori dari akses tidak sah!

<?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);

Terima kasih dan penghargaan untuk semua orang lain yang memposting jawaban di sini!


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

Tanda []kurung dalam prototipe baris perintah hanya menunjukkan bahwa argumen yang dikandungnya adalah opsional.
Dalam hal ini, ia juga menyatakan bahwa mereka dapat diikat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.