2013-04-12 15 views
6

Ho creato un modulo magento che esporta il prodotto nel file csv. Ora voglio eseguire cronjob ogni giorno alle 23.55. Ho impostato config.xml come è scritto in magento cronjob wiki.magento cron job e cron_scheduler table

Il mio codice:

<crontab> 
     <jobs> 
      <gcompany_runprofilescronjob> 
       <schedule> 
        <cron_expr>55 23 * * *</cron_expr> 
       </schedule> 
       <run> 
        <model>export/export_csv::runprofilescronjob</model> 
       </run> 
      </gcompany_runprofilescronjob> 
     </jobs> 
    </crontab> 

Ho anche impostare cronjob sul server. Quando viene eseguito cronjob, tutti i cronjobs in magento vengono memorizzati nella tabella del database cron_schedule ma non nel mio gcompany_runprofilescronjob. Se ho impostato intervallo diverso, ad esempio:

<cron_expr>*/1 * * * *</cron_expr> 

mio cronjob è scritto nel database, ma in esecuzione ogni minuto che non voglio ... voglio che la mia funzione viene eseguita ogni giorno alle 23.55. Qualche suggerimento su cosa sto facendo male?

+0

Potresti avere una migliore possibilità di ottenere assistenza su http://magento.stackexchange.com/ –

risposta

4

Il mio primo passo sarebbe installare Fabrizio Branca AOE Scheduler extension. L'estensione di Fabrizio ha una funzione "List View" che ti mostrerà tutti i lavori Cron attualmente registrati con il cron di Magento e quando sono programmati per l'esecuzione. Consente inoltre di eseguire immediatamente un cron job nel browser (ottimo per eseguire il debug di processi cron) o pianificare il lavoro per l'esecuzione immediata.

Se il lavoro cron non viene visualizzato nella visualizzazione elenco di AOE Scheduler, c'è un problema con la configurazione del processo cron. Prova a svuotare la cache di configurazione per assicurarti che Magento analizzerà il tuo config.xml per le ultime modifiche. Presumo che il tuo nodo XML si trovi nella posizione appropriata nella gerarchia del documento XML, ovvero direttamente sotto il nodo <config>?

Se il processo cron compare in Visualizzazione elenco e continua a non essere eseguito, utilizzare la funzione "Genera pianificazione" per rigenerare le tabelle di pianificazione cron. Prova anche a eseguire manualmente il tuo cron job utilizzando la funzione "Esegui ora" di AOE Scheduler per verificare errori o eccezioni.

+3

Non è necessario installare il modulo completo. Puoi copiare lo script shell/scheduler.php nella cartella shell della tua installazione. Quindi eseguilo nella riga di comando e ottieni tutte le funzionalità. – SPRBRN

7

Anche se questa è una domanda molto vecchia, non è stata pubblicata alcuna risposta corretta, quindi lasciatemi qui per il prossimo.

La tabella di Magento cron_schedule viene popolata solo con processi cron programmati per l'esecuzione nel prossimo. Il motivo per cui non vedi il tuo cron job nella tabella è perché viene eseguito solo una volta al giorno, precisamente alle 23:55. Magento aggiungerà questo cron job alla tabella cron_schedule intorno alle 23:45, a seconda della configurazione del processo cron del server e delle impostazioni del cron di Magento in System > Configuration > System > Cron. Prendi nota delle impostazioni Generate Schedules Every e Schedule Ahead for, che definiscono la frequenza con cui Magento genera la pianificazione.