pregunta sobre batch api,

Events happening in the community are now at Drupal community events on www.drupal.org.
oskar_calvo's picture

Problemas ejecutando un código de batch api. Me hace dos cosas raras, me da un timeout, por un lado, y acceso denegado para el usuario anónimo cuando intenta ejecutar el proceso.

El código es:

<?php

/<strong>
*
*
Implementation hook menu
*
*/

function
pruebas_menu(){
 
$items = array();

 
$items['pruebas/batch'] = array(
   
'title'            => 'pruebas batch',
   
'description'      => 'prubas batch api',
   
'page callback'    => 'pruebas_de_batchs',
   
'access callback'  => TRUE,
   
'file'             => 'pruebas.module',
   
'type'             => MENU_CALLBACK,
  );
  return
$items;
}


/</
strong>
*
Implementation hook cron
*/
function
pruebas_cron(){
 
//primero ejecutamos el cálculo de tiempo total, para guardarlo en una variable.
 
pruebas_de_batchs();
}


/***
*
*
* función pruebas_de_batchs
*
*/
function pruebas_de_batchs(){
 
 
//llamamos a la función de batch
 
batch_set(_cargar_usuarios());

 
 
//We're not inside a form submission workflow, so we have to manually
  // trigger the batch processing - this issues a drupal_goto and thus ends
  // current request.
  // We also specify here where we want to redirect after batch processing.
 
batch_process('home');
}


/***
* cargar usuarios
*/
function _cargar_usuarios(){
 
//calculamos la fecha.
 
$date = date('Y-m-d',strtotime('yesterday'));
 
//montamos array de valores de fechas.
 
$valoresfechas = _get_valores_fechas($date);
 
$usuarios = array();
 
//se ejecuta correctamente. se ha comprobado.
 
$usuarios = _crear_array_usuarios_tiempos( $valoresfechas); 
 
 
$operations = array();
  foreach(
$usuarios as $uid => $usuario){
   
$operations[] = array('cambiar_nombre', array($uid, $usuario, $valoresfechas));
  }
 
 
$batch = array(
   
'operations' => $operations,
   
'finished' => 'funcion_final',
   
'title' => t('Calculando tiempo de usuarios'),
   
'init_message' => t('Comienza el cálculo de tiempos.'),
  );
 
  return
$batch;

}

?>

Si el proceso no recoge ese día usuarios para actualizar, parece que me da un error de time out.

Por otro lado me da un error de acceso denegado para la ejecución del proceso de batch api.

access denied
Fecha   Lunes, Septiembre 26, 2011 - 13:50
Usuario  (no verificado)
Ubicación   http://www.domain.com/batch?op=start&id=90

Comments

Ya he encontrado la

oskar_calvo's picture

Ya he encontrado la respuesta.

Parece que no se puede ejecutar cron y batch api de forma conjunta.

http://drupal.org/node/988192

La única opción parece que es envolver a traves de "drupal_queue module" el batchapi para que sea ejecutado por cron LOL.

http://drupal.org/node/988192#comment-3847954
http://svendecabooter.be/blog/performing-batch-data-operations-on-cron-r...

en fins.

Oskar

Madrid

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: