Nueva pregunta

Pregunta:

Fecha: 10-03-2019 13:51:28 (En Español)

¿Es posible dejar abierta una tarea PHP ejecutada a través de un ajax?[No resuelta]

Buen día,

tengo el siguiente código JavaScript que ejecuta un script en php Asincronicamente
 
var formData2 = {
       'EjecutarPeticion': DatosPeticion,
      };
      $.ajax({
       url: "../request-Vuce/vuce-responses.php",
       method: "POST",
       data: formData2,
       cache: false,

       success: function(data) {

        $(document.body).html('Fin' + TipoTarea);

       }
      });



lo que quiero hacer es que el proceso no quede a medias si el usuario se va del navegador, es decir que la tarea se complete sin importar que se cierre o se vayan de la pagina en cuestión.
Etiquetas: AJAX - Javascript - JQuery - PHP - Pregunta Votos: 0 - Respuestas: 5 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 10-03-2019 16:39:49 Recuerda que Javascript se ejecuta en el navegador, al cerrar éste, se detiene la ejecución de cualquier código Javascript. Podrías buscar alguna alternativa pero debes usar Node.JS que es Javascript ejecutado del lado del servidor, pero no sé si funcione para lo que necesitas   Votos: 0 - Link respuesta
     
  • Fecha: 15-03-2019 09:58:02 Hola Bryan
    No entiendo tu pregunta ni tu código.

    (Ver preguntas dentro de tu código)
     
    var formData2 = {
           'EjecutarPeticion': DatosPeticion,  // ¿qué valor tiene DatosPeticion?
          };
          $.ajax({
           url: "../request-Vuce/vuce-responses.php",
           method: "POST",
           data: formData2,
           cache: false,
           success: function(data) {
            $(document.body).html('Fin' + TipoTarea); // ¿qué valor tiene TipoTarea?
           }
          });

    Ignoro el código de ../request-Vuce/vuce-responses.php que de cualquier modo te traerá un data que no veo lo recojas, incluso si en realidad te llega.

    $(document.body).html() ¿¿?? Dale un id, un class incluso un alert().
    Entiendo que document.body es redundante. document es todo lo que se hace y se ejecuta en el <body>

    Por otra parte, no dejará abierta una tarea (no sabría cómo hacerla) sino que la ejecutará cuantas veces la reclames
      Votos: 0 - Link respuesta
     
  • Fecha: 15-03-2019 10:25:33 Hola Txema Artzain todo funciona correctamente, lo que sucede es que el usuario es un RPA programado en autoit un bot, pero este cierra la ventana antes de tiempo y el proceso que se corre en ../request-Vuce/vuce-responses.php queda sin completarse, la pregunta es si es posible que el proceso que se corre en ../request-Vuce/vuce-responses.php quede ejecutandose asi el usuario cierre la ventana.   Votos: 0 - Link respuesta
     
  • Fecha: 15-03-2019 11:42:24 Lo que estoy leyendo:

    "La aplicación o robot del típico software de RPA funciona en la interfaz de usuario (IU) de forma similar a como trabajamos las personas: mueven el ratón, utilizan el teclado, buscan en el monitor… Después de ser educado para entender cualquier proceso específico, el software puede ejecutar automáticamente las transacciones que le han sido asignadas, trabajar con datos, iniciar acciones de respuesta y colaborar con otros sistemas cuando y como sea necesario."

    Dado que funciona en la interfaz de usuario, me temo que no sea posible dejar abierta una tarea.

    Supongo que habrá conocedores del tema que te lo puedan exponder mejor que yo.

    Disculpa si mi respuesta anterior iba dirigida al código que leía y que por lo que comentas es una parte minúscula del código completo.
      Votos: 0 - Link respuesta
     
  • Fecha: 15-03-2019 18:18:18 Hola Bryan, prueba agregar al inicio de tu script las siguientes líneas:

    <?php
    ignore_user_abort(true);
    set_time_limit(0);
    


    Como siempre no dejes de leer la documentación oficial sobre estas directivas de configuración:
    * ignore_user_abort
    * set_time_limit

    Luego nos cuentas como te fue, saludos y buen código!
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión