CakePHP Shell: la function del model siempre está vacía

Tengo una queue de trabajos que envía correos electrónicos.

Base de datos:

id | function | arguments | description | status | error | error_count 

p.ej

 1 email {"to":"[email protected]","subject":"Email from us", "body":"Hey, how are you?"} pending 0 

Se procesa a través de un shell.

 function main(){ App::uses('CakeEmail', 'Network/Email'); $this->out('Starting Queue...'); $this->out('...getting jobs'); $queueJobs = $this->QueueJob->getJobs(); if(!empty($queueJobs)) { //process queue } else { $this->out('......no jobs to process'); } } 

El código funciona bien en el sitio de desarrollo (carga manual) pero cuando lo muevo al sitio de producción (en el mismo server solo un dominio diferente, extraído de git) $ queueJobs siempre está vacío, por lo que no procesa la queue.

El model tiene esto:

 function getJobs(){ $queueJobs = $this->find('all', array( 'conditions'=>array( 'OR' => array( array('status'=>'pending'), array('status'=>'error') ) ) )); return $queueJobs; } 

Creé un controller / vista que también llama a esta function de model y que funciona bien, solo cuando se usa el shell siempre regresa vacío.

 public function index() { $queueJobs = $this->QueueJob->getJobs(); $this->set('queueJobs', $queueJobs); } 

Gracias a AD7six por señalarme en la dirección correcta.

El shell estaba buscando en la database incorrecta ya que hay una database dev y en vivo que se cambia dependiendo de la URL. La actualización del constructo para include una verificación de directory resolvió el problema:

 public function __construct() { $dir = APP; $live_dir = '/home/admin/domains/livedomain.com/public_html'; if (isset($_SERVER) && isset($_SERVER['SERVER_NAME']) or isset($dir)) { if($_SERVER['SERVER_NAME'] == 'livedomain.com' or strpos($dir, $live_dir) !== FALSE) { $this->default = $this->live; } } }