2012-06-26 13 views
17

Quería configurar un trabajo cron dentro de mi módulo. Seguí las instrucciones en Magento wiki - how_to_setup_a_cron_job, pero mi trabajo cron simplemente no se está ejecutando.¿Cómo configurar una tarea cron en el módulo Magento?

Ésta es mi config.xml (app/código/local/Roomstory/Factura/etc/config.xml)

<?xml version="1.0"?> 
<config>  
    <modules> 
     <Roomstory_Invoice> 
      <version>0.1.1</version> 
     </Roomstory_Invoice> 
    </modules> 
<!-- --> 
    <crontab> 
     <jobs> 
      <roomstoryinvoice_setstatus> 
       <schedule><cron_expr>*/10 * * * *</cron_expr></schedule> 
       <run><model>roomstory_invoice/setstatus::run</model></run> 
      </roomstoryinvoice_setstatus> 
     </jobs> 
    </crontab> 
</config> 

Y esta es mi clase. (App/código// Roomstory/Factura/Modelo locales/Setstatus.php)

<?php 
class Roomstory_Invoice_Model_Setstatus { 

    public function run() { 
    return true; 
    } 

} 
?> 

He instalado un módulo Programador de Cron, que muestra mi trabajo cron en la lista, pero cuando trato de "correr ahora" (para depuración), me sale error -

devolución de llamada no válido: roomstory_invoice/setStatus :: run no existe

Este algo sencillo, después de mucho intentarlo, yo todavía no soy capaz de encontrar el error. Por favor dígale de otra manera para hacerlo, o indique el error en este código.

Gracias!

Respuesta

33

En sus módulos config.xml colocamos los siguientes:

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

En app/code/local/Roomstory/Invoice/Model/Observer.php agregar lo siguiente:

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

Asegúrese de que el registro está habilitado y debería funcionar, compruebe el registro para estar seguro;)

+0

Todavía recibo el mismo error-'Devolución de llamada inválida: roomstoryinvoicecroncron/observer :: setStatus no existe' –

+0

Actualicé config.xml, intente de nuevo;) – Kenny

+0

¡Gracias, está funcionando! –

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

y crear el archivo Observer.php en Modelo con

class CompanyName_ModuleName_Model_Observer extends Mage_Core_Model_Abstract 
{ 

    public function setStatus() 
    { 

    } 
} 
7

Asegúrese de añadir el archivo cron.sh Magento en el crontab

crontab -e 

*/5 * * * * /bin/sh /path-to-magento/cron.sh 
1

Usted puede crear fácilmente un módulo de trabajo cron sólo tienes que seguir los siguientes pasos:

crear el archivo Config.xml y establecer cron job en él.

<?xml version="1.0"?> 
<config>  
<crontab> 
     <jobs> 
      <Namespace_Module> 
       <schedule> 
        <cron_expr>* * * * *</cron_expr> 
       </schedule> 
       <run> 
        <model>module/observer::method</model> 
       </run> 
      </Namespace_Module> 
     </jobs> 
    </crontab> 
</config> 

Su método de observador:

class CompanyName_ModuleName_Model_Observer extends Mage_Core_Model_Abstract 
{ 

    public function setStatus() 
    { 
//your action 
    } 
} 

ahora último paso Cesta de la cpanel hosting y camino trazado y el tiempo de ejecución del archivo cron.php en la sección trabajo cron

por defecto se puede establecer ruta como php -f /home/mercodec/public_html/cron.php en magento.

0

antes de eso, debe ejecutar este script en su terminal. Para ubuntu: */1 * * * */usr/bin/php /var/www/html/modulename/cron.php>/dev/null

+0

Gracias por su respuesta –

Cuestiones relacionadas