Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,159,317 members, 7,839,519 topics. Date: Friday, 24 May 2024 at 09:31 PM

How To Create Cron Job In Magento 2 - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / How To Create Cron Job In Magento 2 (726 Views)

How To Load Product By SKU In Magento 2? / How To Override A Core Class In Magento 2 / 6 Types Of Products In Magento E-commerce (2) (3) (4)

(1) (Reply)

How To Create Cron Job In Magento 2 by magetop(m): 7:19am On Jul 30, 2019
Magento 2 Create Cron Job is setting an automatic schedule on time, that is really convenient when you run Magento 2 store. Why is it such useful function? For example, you need assitance from a software like website statistics or content management system which require to run at the certain time, however, maybe you are unavailable to do that. That is why you must create the Cron Job on your web server.

Are you looking for a understanable tutorial? This post is all for you. The simple and clear instructions will be mentioned here.

Tables of Contents
- What is Cron Job?
- Why need Cron Job?
- Run and Create Cron Job
+ Create crontab.xml
+ Create Test.php

What is a Cron Job?
Cron job is a great feature by Linux, the free operating system for the user. The cron job will create a command or a script that is appropriate with the task you want to do. Instead of manual working, the cronjob allows running automatically in exact time and date. Due to its automation, the cron jobs is the perfect choice for repeated projects every date or every week.

Note : Cron configuration is very important in Magento to set the schedule for many system activities such as reindexing, auto-update of currency rates, Magento emails, etc. Only when the configuration is correct, the cron job is active. In the case of making an error, this means Magento won’t function as expected.

Why need Cron Job
Several Magento features require at least one Cron Job, which schedules activities to occur in the future. A partial list of these activities follows:

- Catalog price rules
- Newsletters
- Generating Google sitemaps
- Customer Alerts/Notifications (product price change, product back in stock)
- Reindexing
- Private sales (Magento Commerce only)
- Automatic updating of currency rates
- All Magento e-mails (including order confirmation and transactional)

Run and Create cron job
Please follow the guides to start the cron job program as your wish while the cron schedule is set by you.

- Create a class within the “Cron” folder
- Manually setup the cron schedule by using PHP: bin/magento cron:run
- Find a log in the var/log/system.log after the cronjob has run.
- Login to Magento 2 Admin panel, do as the path: Stores > Configuration > Advanced > System, then changing scheduler settings per cron group.
- Finally, run cron from the command line:

magento cron:run [--group="<cron group name>"]

Now, We will add a custom cron in HelloWorld module.

Create crontab.xml
File: app/code/Magetop/HelloWorld/etc/crontab.xml

Content would be

<?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="Magetop\HelloWorld\Cron\Test" method="execute" name="magetop_helloworld_cron">
<schedule>* * * * *</schedule>
</job>
</group>
</config>

- group id is your cron group name. You can run only cron for single group at a time.
- job instance is class to be instantiated (classpath).
- job method is method in job instance to call.
- job name is Unique ID for this cron job.
- schedule is schedule in cron format. The following graph shows what it consists of:

* * * * * command to be executed
| | | | |
| | | | +----- Day of week (0 - 7) (Sunday=0 or 7)
| | | +------- Month (1 - 12)
| | +--------- Day of month (1 - 31)
| +----------- Hour (0 - 23)
+------------- Minute (0 - 59)

In crontab.xml, we have defined job instance is Magetop\HelloWorld\Cron\Test. It should create now.

Create Test.php
File: app/code/Magetop/HelloWorld/Cron/Test.php

Content would be:

<?php
namespace Magetop\HelloWorld\Cron;

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;
}
}


All done, please flush cache and run magento cron:run --group="default" from the command line.

To check whether the Cron is working properly, go to var/log/cron.log of your store and you will see the text Magetop\HelloWorld\Cron\Test::execute in it.

Source : https://www.magetop.com/blog/how-to-create-cron-job-in-magento-2

Our Extension : Magento 2 Marketplace Extension by Magetop is an excellent Magento extension which offers enormous features to convert your magento website into a fully functioning ecommerce marketplace similar to Amazon, Ebay, Etsy, Alibaba, Aliexpress

(1) (Reply)

NIGERIA ASIA EXPORT Conference.....powered By Trade Nigeria / Nigeria Japan Joint Trade Mission & Business Delegation Of Industries Investmen / What Are The Basic Principles Of Mcafee Antivirus!

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 19
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.