Foros del Web » Programando para Internet » PHP »

Ejecutar php desde otro php

Estas en el tema de Ejecutar php desde otro php en el foro de PHP en Foros del Web. Gracias de antemano por vuestra ayuda, sois unos fieras! Tengo un problema con mi hosting, uso dos "cron jobs" que se ejecutaban contantemente para hacer ...
  #1 (permalink)  
Antiguo 25/11/2014, 05:50
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Ejecutar php desde otro php

Gracias de antemano por vuestra ayuda, sois unos fieras!

Tengo un problema con mi hosting, uso dos "cron jobs" que se ejecutaban contantemente para hacer unas operaciones cada minuto y cada 5 minutos... ahora, la empresa que me da el hosting, me ha limitado la ejecucion de los scripts a 30 minutos...

Conclusion, quiero que mi script en php se ejecute durante 25 minutos o asi... y al terminar, que me abra otro script que se ejecute 25 minutos mas y vueva a llamar al priemer script con la idea de crear un bucle para saltarme la limitacion que me han impuesto...

Pregunta rapida: ¿¿¿que pongo en mi php para que abra otro script php y se ponga a funcionar???

Muchas gracias otra vez!
  #2 (permalink)  
Antiguo 25/11/2014, 06:10
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Ejecutar php desde otro php

Has probado con un include?
Código PHP:
Ver original
  1. <?php
  2.  
  3. include('../directorio/archivo.php');
  4.  
  5. ?>
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 25/11/2014, 06:16
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

pero la sentencia include no ejecuta otro archivo php sino que incluye este en el primero no? lo estoy probando pero me da que con el include no se termina el primer script...
  #4 (permalink)  
Antiguo 25/11/2014, 07:57
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Ejecutar php desde otro php

Si no te va bien puedes probar, así:
Código PHP:
Ver original
  1. <?php
  2. $cont = file_get_contents("../directorio/archivo.php");
  3. echo $cont;
  4. ?>
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #5 (permalink)  
Antiguo 25/11/2014, 14:40
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

No funcionan ninguna de las dos formas (¡¡¡pero muchas gracias por intentarlo!!!), Las dos formas mantienen abierto el primer documento php y cuando sobrepasa los 30 minutos se cierra... he intentado usar el comando EXEC pero no acabo de entenderlo... :(

lo que tengo es esto:
Código:
$galletas = 1;
while ($galletas <= 25):
$db->query("UPDATE users SET minutos=minutos-1 WHERE minutos > 0");
sleep(60);
$galletas++;
endwhile;
******aqui es donde tengo que llamar a otro php y cerrar este*****
Espero que se me entienda... es un cronjob que descuenta un minuto y luego duerme otro minuto... antes lo tenia funcionando una semana entera, pero me lo han capado y solo me dejan ejecutar el script durante 30 minutos, por lo que quiero hacer un bucle infinito entre dos php que se llaman el uno al otro...
  #6 (permalink)  
Antiguo 25/11/2014, 14:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar php desde otro php

Cita:
Iniciado por apadravya Ver Mensaje
pero la sentencia include no ejecuta otro archivo php sino que incluye este en el primero no? lo estoy probando pero me da que con el include no se termina el primer script...
Ese es precisamente el problema: no entiendes lo que significa "incluir" otro script.

Sí, el include "incluye" el script en el contexto actual: pero eso también significa ejecutar dicho script, vaya.

Entonces include() sí ejecutará el script, no te confundas.

Ahora, el incluir otro script no detiene la ejecución del script inicial: porque por flujo de ejecución ya has invocado todo el primer script, y en ese orden entonces se ejecuta el segundo script que incluyes.

Es decir, no puedes detener algo que ya no se ejecutara más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 25/11/2014, 15:22
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

Conclusión: Las dos primeras respuestas son validas, porque ejecuto un nuevo script y el primero ya se detiene... pues manos a la obra, voy a pedir perdon a lauser, agradecerte pateketrueke la pequeña clase que me has dado y a meter el include. Despues de ver si funciona os cuento.

¡Muchas gracias!
  #8 (permalink)  
Antiguo 25/11/2014, 16:50
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Ejecutar php desde otro php

Cita:
Iniciado por apadravya Ver Mensaje
Conclusión: Las dos primeras respuestas son validas, porque ejecuto un nuevo script y el primero ya se detiene... pues manos a la obra, voy a pedir perdon a lauser, agradecerte pateketrueke la pequeña clase que me has dado y a meter el include. Despues de ver si funciona os cuento.

¡Muchas gracias!
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #9 (permalink)  
Antiguo 25/11/2014, 17:58
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ejecutar php desde otro php

Si usas MySQL 5.1 o mayor, puedes pedirle directamente a la base de datos que haga eso por ti, no necesitas cron jobs.

La herramienta que te propongo son los SCHEDULE EVENTS, seria algo así:
Código MySQL:
Ver original
  1. CREATE EVENT e_1_minute
  2.     ON SCHEDULE
  3.       EVERY 1 MINUTE
  4.     COMMENT 'Este es un schedule event que se ejecuta cada un minuto en la base de datos.'
  5.     DO
  6.       UPDATE users SET minutos=minutos-1 WHERE minutos > 0

Con esto si tu proveedor te cobra extra por los cron job, puedes dejar de pagarle
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #10 (permalink)  
Antiguo 26/11/2014, 04:41
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

OMG, eso si que es una buena solucion... estoy pagando MUCHO mas por tener cronjobs... pero me parece que no tengo permisos para hacer eso :(

Error
consulta SQL:

SET GLOBAL event_scheduler = ON

MySQL ha dicho: Documentación


#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

Última edición por apadravya; 26/11/2014 a las 04:48
  #11 (permalink)  
Antiguo 26/11/2014, 09:11
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ejecutar php desde otro php

Bueno, hay dos opciones, o le pides al administrador que te de los privilegios o bien piensas en reestructurar el modelo.

Por ejemplo, esto:
Código MySQL:
Ver original
  1. UPDATE users SET minutos=minutos-1 WHERE minutos > 0
Supongo que un usuario adquiere minutos por algún medio, y luego los va perdiendo cada cierto tiempo, esto puedes resolverlo sin eventos temporales.

Podrias tener un campo que en vez de minutos de llame vencimiento donde cada vez que se acreditan minutos guardas la hora actual + la cantidad de minutos, luego en vez de preguntar si minutos es > 0 preguntas si vencimiento <= NOW() la funcionalidad es la misma, pero no hace falta eventos temporales.

Si nos explicas mejor para que haces las cosas en un cron job, podemos indicarte como resolverlas sin ellos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 26/11/2014, 10:39
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

Es un juego on-line donde los jugadores pueden terminar x minutos en la carcel u hospital, y ademas cada 5 minutos se recupera energia, voluntad etc... no me sirve nada de lo que se ha comentado... el include, por mas que lo pruebo, hace que se quede abierto el primer documento y salte la alarma media hora despues...
  #13 (permalink)  
Antiguo 26/11/2014, 10:53
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

por mas que miro... tengo que usar cronjobs y el cronjob no puede excederse mas de 30 minutos de ejecución... en otros servidores me darian la posibilidad de hacer cronjobs por minutos, pero no en mi hosting actual (strato) no. Igual termino antes marchandome de strato (esta nueva restricción de 30 minutos es gracias a mi y me han ofrecido devolverme el dinero) si sabeis de algun hosting que no me de tanto trabajo con los cronjobs y que sea baratito.... mis jugadores y yo os estariamos muy agradecidos...
  #14 (permalink)  
Antiguo 26/11/2014, 11:22
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ejecutar php desde otro php

Si es un juego online, considera contratar un VPS, sea cual sea el proveedor, es la mejor opción y ya no tendrás problemas de ningún tipo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #15 (permalink)  
Antiguo 26/11/2014, 11:31
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

si, asi es como tendria que haberlo hecho desde el primer momento, pero en strato me han llegado a pedir 100€ al mes por uno que tenga los cronjobs y eso... conoceis algun vps baratito y majo?
  #16 (permalink)  
Antiguo 26/11/2014, 12:33
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ejecutar php desde otro php

Los de VPS.ME me parecen geniales, ademas de que te dan uno gratuito para que hagas pruebas y si te convence y quieres mas potencia puedes contratar uno mejor.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #17 (permalink)  
Antiguo 26/11/2014, 16:00
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ejecutar php desde otro php

se me hace un poco caro... en 3 meses mi pagina a generado 3€... me parece muy caro pagar mas de 10€ al mes... he encontrado unos baratos: http://vpsdime.com/ o este http://www.vpscheap.net/ este ultimo es ridiculamente barato... ya veo que tiene muy pocas prestaciones, pero para mi, que tengo unos 35 jugadores... me parece suficiente...

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:21.