How to setup a cron job in Magento

3 simple steps to setup cronjobs on server and create custom task in your Magento instance.

  1. Setup cronjob on server
    crontab -e

    and then

    #cron.sh will run every 5 minutes
    */5 * * * * /bin/sh /path/to/magento/cron.sh
  2. Add definition of cron job in app/code/local/K2Service/Cron/etc/config.xml of your module
    <?xml version="1.0"?>
    <config>
        <modules>
            <K2Service_Cron>
                <version>1.0.0</version>
            </K2Service_Cron>
        </modules>
        <global>
            <models>
                <k2_cron>
                    <class>K2Service_Cron_Model</class>
                </k2_cron>                         
            </models>
        </global>
        <crontab>
            <jobs>
                <k2_cron_job>
                    <schedule>
                        <cron_expr>*/10 * * * *</cron_expr>
                    </schedule>
                    <run>
                        <model>k2_cron/observer::job</model>
                    </run>
                </k2_cron_job>
            </jobs>
        </crontab>
    </config>
  3. Create Observer in app/code/local/K2Service/Cron/Model/Observer.php
    <?php
    class K2Service_Cron_Model_Observer {
    
        /** @return void */
        public function job() {
            Mage::log("Custom Cron Job Works");
        }
    }
    

     

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.