PHP - Problema recorrer JSON y subida por API

 
Vista:
sin imagen de perfil

Problema recorrer JSON y subida por API

Publicado por Manuel (2 intervenciones) el 22/10/2021 22:46:36
Buenas noches,
soy nuevo por este foro, es mi primer tema que escribo. A ver si me podéis dar la solución correcta a lo que quiero realizar.

Problematica:
Tengo un archivo json, el cual suele tener entre 9000 y 15000 items de datos de clientes.

La cosa es que quiero recorrer cada uno de estos item, para subirlo a un Saas mediante su API. Pero no quiero subir 9000 o 15000 item de una, si no que me gustaría que se subiera en grupos de 50 o 60 items, esperase al menos un segundo o 2 para subir el siguiente grupo.

Si lo hago todo de una, la API podría limitar la subida. Y se que si se hace algo más "lento" no habría problema.

Tengo el siguiente código que muestro abajo, pero incluso estableciendo el set_time_limit(30) antes de cada grupo, aun así, cuando el servidor mediante cron ejecutar el php, parece que no llega acabar el proceso.

Se que todo tiene su fin y no entre en bucle infinito, porque he realizado otras prueba comentando el set_time_limit(30) y el sleep(1), y termina correctamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$pathJSON = dirname(__FILE__).'/json_clientes.json';
$array = json_decode(file_get_contents($pathJSON), TRUE);
 
$arrayChunks = array_chunk($array, 50);
 
foreach ($arrayChunks as $k => $chunk) {
 
set_time_limit(30);
 
    foreach ($chunk as $data) {
        //Codigo para insertar mediante API
    }
 
    sleep(1);
}

A ver si podéis ayudar, ya sea porque veáis una mejora en el código, u otra forma de hacerlo.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de raai
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema recorrer JSON y subida por API

Publicado por raai (79 intervenciones) el 27/10/2021 20:26:14
Quizá le tome más de 30 seg en ejecutarse.
Lo has testeado de manera local?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema recorrer JSON y subida por API

Publicado por Mauro (1036 intervenciones) el 28/10/2021 18:14:36
¿Cómo sabes que no está llegando al final? ¿Estás dejando un registro del final de la ejecución en algún lado?

Por otra parte, si lo ejecutas como cronjob y produce algún error o excepción, eso debería quedar registrado en los mails del usuario que ejecuta el cronjob.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar