Foros del Web » Programando para Internet » PHP »

Crear funcion en modo background...

Estas en el tema de Crear funcion en modo background... en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 22/01/2003, 08:03
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
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.
__________________
________________________________________

Ugho.
  #2 (permalink)  
Antiguo 22/01/2003, 08:20
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
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
__________________
=PoWeReD By MySeLf!=
  #3 (permalink)  
Antiguo 22/01/2003, 08:35
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
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()
__________________
Blog | Tecnosquad
  #4 (permalink)  
Antiguo 22/01/2003, 08:39
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
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
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #5 (permalink)  
Antiguo 22/01/2003, 09:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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,
  #6 (permalink)  
Antiguo 24/01/2003, 14:05
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
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.
__________________
________________________________________

Ugho.
  #7 (permalink)  
Antiguo 24/01/2003, 15:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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 )

Un saludo,
  #8 (permalink)  
Antiguo 24/01/2003, 15:13
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Gracias estimado amigo otra vez, buscaré información al respecto.
SALUDOS
__________________
________________________________________

Ugho.
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 16:35.