Bagaimana cara menjalankan cron job pada waktu tertentu di Magento 2?
Saya ingin membuat tugas cron yang memperbarui harga produk yang dinonaktifkan dan cron berjalan pada waktu tertentu 1 kali dalam sehari.
Saya telah membuat modul dasar khusus dari mengambil referensi dari https://www.mageplaza.com/devdocs/magento-2-create-cron-job/
Crontab.xml saya (path: app / code / Product / Cron / etc / crontab.xml)
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job instance="Product\Cron\Cron\Test" method="execute" name="mageplaza_helloworld_cron">
<schedule>*/1 * * * *</schedule>
</job>
</group>
</config>
test.php saya adalah
<?php
namespace Cron\Run\Cron; (path : app/code/Product/Cron/Cron/Test.php )
class Test
{
public function execute()
{
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/cron.log'); $logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info(__METHOD__); return $this;
}
}
Tapi itu tidak menampilkan pesan di file cron.log. Apa yang saya lewatkan, bantuan apa pun, saya hargai.
Jawaban
Tambahkan File Ini ke Modul Kustom Anda dan periksa dulu modul Anda apakah aktif atau tidak. Modul Anda harus diaktifkan.
Buat kelas untuk menjalankan cron
app / code / VendoreName / ModuleName / Cron
Test.php
<?php
namespace VendoreName\ModuleName\Cron;
use Psr\Log\LoggerInterface;
class Test {
protected $logger; public function __construct(LoggerInterface $logger) {
$this->logger = $logger;
}
public function execute() {
$this->logger->info('Cron Works');
}
}
Buat crontab.xml
app / code / VendoreName / ModuleName / dll
crontab.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="custom_cronjob" instance="VendoreName\ModuleName\Cron\Test" method="execute">
<schedule>* * * * *</schedule>
</job>
</group>
</config>
Kompilasi dan bersihkan cache
bin/magento s:up
bin/magento setup:di:compile
bin/magento cache:clean
Verifikasi pekerjaan cron
Langkah ini menunjukkan cara memverifikasi pekerjaan cron kustom berhasil menggunakan kueri SQL pada tabel database cron_schedule.
- Jalankan pekerjaan Magento cron:
bin/magento cron:run
- Masukkan magento cron: jalankan perintah dua atau tiga kali.
Pertama kali Anda memasukkan perintah, itu mengantri pekerjaan; selanjutnya, tugas cron dijalankan. Anda harus memasukkan perintah tersebut setidaknya dua kali.
- Jalankan kueri SQL SELECT * dari cron_schedule WHERE job_code seperti '% custom%'
- Verifikasi pesan yang ditulis ke log sistem Magento:
var/www/html/magento_root/var/log/system.log
Klik Di Sini untuk lebih lanjut
Saya Berharap Ini Membantu Anda.