How to setup a cron job in Magento module? How to setup a cron job in Magento module? xml xml

How to setup a cron job in Magento module?


In your modules config.xml put the following:

<config>    <global>        <models>            <roomstoryinvoicecron>                <class>Roomstory_Invoice_Model</class>            </roomstoryinvoicecron>                                 </models>    </global>    <crontab>        <jobs>            <roomstoryinvoicecron>                <schedule>                    <cron_expr>*/10 * * * *</cron_expr>                </schedule>                <run>                    <model>roomstoryinvoicecron/observer::setStatus</model>                </run>            </roomstoryinvoicecron>        </jobs>    </crontab></config>

In app/code/local/Roomstory/Invoice/Model/Observer.php add the following:

<?phpclass Roomstory_Invoice_Model_Observer {    public function setStatus() {        Mage::log("WORKS!");    }}

Make sure logging is enabled and it should work, check the log to be sure ;)


Be sure to add Magento cron.sh file in crontab

crontab -e*/5 * * * * /bin/sh /path-to-magento/cron.sh


 <crontab>        <jobs>            <CompanyName_ModuleName>                <schedule>                    <cron_expr>*/5 * * * *</cron_expr>                </schedule>                <run>                    <model>ModuleName/observer::setStatus</model>                </run>            </CompanyName_ModuleName>        </jobs>    </crontab>

and create Observer.php file in Model with

    class CompanyName_ModuleName_Model_Observer extends Mage_Core_Model_Abstract{   public function setStatus()   {    }}