2013-07-17 15 views
5

Sto provando a impostare un cron job usando COdeigniter ma non riesco a capire come farlo funzionare. Ho un file chiamato email_check.php nella mia cartella controllori, e ho aggiunto un file .cron nella cartella server cron, che contiene il seguenteCome impostare un cron job con codeigniter

email_check.cron

*/1 * * * * php /var/www/html/application/controllers/email_check 

email_check.php

class Email_check extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     $this->index(); 
    } 

    function index() 
    { 
     $this->load->model('admin/info_model'); 
     $this->info_model->addTestData(); 
    } 

} 

addTestData aggiunge una nuova riga in una tabella di database. Mi piacerebbe che funzionasse ogni minuto, tuttavia non funziona affatto e non ho idea del perché.

Forse potrebbero essere i percorsi sbagliati. Devo puntare la parte php sul file php.exe nel server.

Se qualcuno potesse aiutarmi o indicarmi la giusta direzione, sarebbe molto apprezzato!

risposta

9

Per utilizzare CodeIgniter via linea di comando, è necessario chiamare il file index.php e passare il controller e il metodo come argomenti, più eventuali altri argomenti. Quindi, al minimo la chiamata di lavoro cron potrebbe essere:

~/public_html/sitefolder/index.php controller method 

Oppure utilizzare il percorso del file indice dell'applicazione. Ma devi anche usare PHP compilato per la riga di comando, non solo PHP per CGI-FCGI. Quindi la tua chiamata potrebbe essere qualcosa del tipo:

/ramdisk/bin/php5-cli ~/public_html/sitefolder/index.php controller method 

A seconda di dove si trova la tua CLI PHP.

0

Questo non funzionerà perché il tuo controller email_check.php non farà nulla perché non chiamerà il tuo metodo index().

Si vuole o scrivere uno script che sta per creare una nuova istanza del controller e chiamare il metodo o chiamare tramite un URL, una cosa del genere penso

* * * * * wget http://sitename.com/email_check 
+0

Così lo metto nel file .cron sul server sì? – Pooshonk

+0

provalo e guarda cosa succede – Pattle

+0

No, purtroppo non succede nulla – Pooshonk