Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Crear funcion en modo background... (http://www.forosdelweb.com/f18/crear-funcion-modo-background-112630/)

Ugho 22/01/2003 07:03

Crear funcion en modo background...
 
Estimados amigos:
No si es que se puede hacer, pero existe la posibilidad de crear una funcion que siempre se este ejecutando en modo background, la cual este realizando una funcion especifica.
Espero haberme explicado bien.
De antemano gracias.

e-miliox 22/01/2003 07:20

creo que tienes problemas de redaccion, pero entiendo que al ejecutar un script php no es posible dejar funciones en 'background' porque una vez acabado de ejecutar el script lo que se habia cargado 'muere'. De todas maneras podrias explicar tu situacion para que te demos una mejor respuesta

ArrauKano 22/01/2003 07:35

tal vez desees guardar una variable en una sesion o una cookie.

es eso?¿

si kieres dejar una variable mientras el navegador esta abierto (previo arranke del script por supuesto) y deseas q dure hasta q este sea cerrado, debes usar una sesion.

sesion_start()

si kieres q la variable este activa de manera indefinida ( "indefinida" entre comillas, porque debes establecer el tiempo q va a durar), usa una cookie

setcookie()

temaqueja 22/01/2003 07:39

Si piensas usar tu script en una página web, lamentablemente no es posible, ya que como dijo emiliox, una vez publicada la página el script muere.

Si el caso es como un script en el servidor unix/linux y no tiene nada que ver con paginas web, podrías colocar un bucle ¿infinito? en tu script, luego ejecutarlo en modo background, deberia funcionar... EN TEORIA :pensando:

Cluster 22/01/2003 08:33

Si lo que requieres es ejecutar cierto script/funcion a intervalos para efectuar alguna tarea tipo ... limpieza de registros en una BD o algo similar que se ha de ejecutar a intervalos de tiempo .. puedes usar un CRON Bat de sistema (Linux) o algun lanzador de tareas para Windows ...

En cuanto a procesos en "background" .. en el manual de php aparece esto:

Process Control Functions
http://www.php.net/manual/en/ref.pcntl.php
(solo disponible en Linux y si se usa PHP como CGI o PHP CLI .. Eso es lo q dicen ahí ..)

Pero si el proceso es lanzado por un servidor HTTP .. acuta así como se ha mencionado .. Un script se ejecuta y muere cuando termina.

Un saludo,

Ugho 24/01/2003 13:05

Estimados amigos:
Primero que todo disculpen por no responder sus sugerencias, pero tuve algunos problemas. Bueno me quedo claro que los script PHP mueren al salir de la pagina y que debo buscar una funcion del Sistema Operativo que pueda realizar lo que necesito.
En realidad lo que necesito es lo que dijo el Maestro Cluster, actualizar a intervalos de tiempo mi base de datos Mysql, de acuerdo a una condicion de fecha del mismo.
Estimado Cluster donde puede obtener mas informacion de la funcion CRON Bat, puesto que tengo S.O. LINUX.
De antemano gracias a todos por responder, todos me han ayudado mucho.

Cluster 24/01/2003 14:00

Sobre el CRON de linux .. puedes obtener información en:

1) .. usando el comando MAN
2) preguntando en el foro Linux
3) google xD

Yo se de la existencia de "CRON" .. pero no suelo administrar sistemas linux .. asi q poco mas te puedo decir ..

Lo que si que sé es que tienes que ejecutar tu script PHP como una aplicación CGI o PHP CLI .. y a ser posible usar el parametro -q a la hora de llamar a PHP (interprete) para q no lance cabeceras HTTP .. pues la aplicación ahora seria tipo "shell". Tambien se puede insertar una linea tipo aplicaciones Perl (al principio del scritp):

#!/path/to/php

Y llamar via el CRON a tuscript.php sin mas ..

Lo ideal en estos casos es crear "log" de como fué el proceso a un archivo de texto plano .. Así los revisas y ves si está funcionando bien . o para cuando falle ver que sucede .. Osese .. todos los "echo" comunes de "conecto a la BD o no .. se pudo ejecutar la consulta . o no .. etc" .. hacerlos al fichero de texto plano (pudes incluso gestionar el buffer de salida via ob_xxx() )

Por cierto .. me equivoqué en el nombre completo de la aplicación .. es CRONTAB .. y no Cron Bat como dije xD (se nota q uso mas DOS/Win q Linux :pensando: :-D )

Un saludo,

Ugho 24/01/2003 14:13

Gracias estimado amigo otra vez, buscaré información al respecto.
SALUDOS


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2