Skip to main content
Soiposervices Logo
Create and test a custom cron job in magento

Create and test a custom cron job in magento

Home / Blog / Laravel & Application Engineering / Create and test a custom cron job in magento
12 ottobre, 2020
Laravel & Application Engineering
During one of my latest Magento projects I had to create custom cron jobs, so I decided to write a small how-to guide, that might help you do the same.

FIRST OFF YOU WILL NEED A NEW CUSTOM BUNDLE.
In app/etc/modules/New_Module.xml

<?xml version="1.0"?>
<config>
    <modules>
        <New_Module>
            <active>true</active>
            <codePool>local</codePool>
        </New_Module>
    </modules>
</config>

In app/code/local/New/Module/etc

<?xml version="1.0"?>
<config>
   <modules>
      <New_Module>
         <version>0.0.1</version>
      </New_Module>
   </modules>
   <global>
      <models>
         <new_module>
             <class>New_Module_Model</class>
         </new_module>
      </models>
   </global>
   <crontab>
     <jobs>
        <new_module>
            <schedule><cron_expr>*/1 * * * *</cron_expr></schedule>
            <run><model>new_module/observer::test</model></run>
        </new_module>
     </jobs>
  </crontab>
</config>

Please note that the model tag is the same used in the run/model tag in the crontab job.

For this example, the job will be run every minute.

As a reference, this is the syntax of the cron_expr:

  • Minute: */5
  • Hour: *
  • Day of the Month: *
  • Month: *
  • Day of the Week: *

In app/code/local/New/Module/Model/Observer.php
class New_Module_Model_Observer
{
    public function test()
    {
        //Do something amazing
        return $this;
    }
}

THAT’S ALL, NOW TO TEST:
1) Refresh the cache
2) Delete everything in the cron_schedule table.
3) Run the following command to schedule all the jobs, you will notice that the cron_schedule table will be filled with some entries, you should also see the entry new_module .

 php -q path/to/my/magento/root/cron.php

4) Run it again and your cron job will be executed.

Related Articles

An easy guide on how to send html emails

An easy guide on how to send html emails

Ever wondered how to send emails using your GMAIL account? Wonder no more, on Mailtrap.io there is a great article on how to send HTML emails using your GMAIL