Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
¿Cómo ejecutar el script de la aplicación de Google en el momento exacto?

Actualmente, quiero ejecutar el script de mi aplicación de Google en el momento exacto. Ya leí un poco sobre este problema y decido seguir la solución en esta publicación . ¿Es posible ejecutar el script de Google Sheets en tiempo exacto todos los días? .

Sin embargo, cada vez que el disparador de tiempo solo funciona una vez. Mostrará un error por segunda vez. Busqué en Google sobre este problema y la mayoría de ellos afirman que es un error de Google v8 ( https://issuetracker.google.com/issues/150756612 ).

Entonces, decido degradar mi código a ES5 ya que esa es la única solución de la publicación ( https://issuetracker.google.com/issues/150756612 ). Pero tengo un problema al cambiar el spread operator(...) a ES5

Aquí está mi código:

 function runTrigger(hours,minutes) { var today_D=new Date(); var year=today_D.getFullYear(); var month=today_D.getMonth(); var day=today_D.getDate(); day=day+1; var pars=[year,month,day,hours,minutes]; var schedule_date=new Date(...pars); var hours_reamain=Math.abs(schedule_date - today_D)/36e5; ScriptApp.newTrigger("testFunction") .timeBased() .after(hours_reamain*60*60*1000) .create() } function deleteTrigger() { var triggers=ScriptApp.getProjectTriggers(); var ssId="1d5P4ohgSLtOzuInxq1IYQUsB4GybeYhth5Gj21RI3rA"; var ss=SpreadsheetApp.openById(ssId); for(var i=0 ; i< triggers.length ; i++) { ss.appendRow([new Date() ,JSON.stringify(triggers[i]), JSON.stringify(triggers[i].getHandlerFunction()) , JSON.stringify(triggers[i].getEventType()) , JSON.stringify(triggers[i].getTriggerSource())]) if(triggers[i].getHandlerFunction() === "testFunction") { ScriptApp.deleteTrigger(triggers[i]); } } } function setTrigger() { deleteTrigger(); runTrigger(1,35); } function testFunction() { //some code at here setTrigger(); }

¿Alguien puede enseñarme cómo puedo cambiar el ...(spread operator) a ES5

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No creo que se pueda configurar un disparador para que se ejecute en un momento exacto. Mi sugerencia es configurar el disparador para que se ejecute una hora antes de la hora en que le gustaría que se dispare, luego, haga que su función ejecute un bucle para verificar la hora exacta, tal vez ejecutar cada minuto.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo que estoy haciendo hasta ahora es lanzar una función que configurará el disparador a la hora exacta en función de la hora actual. Me aseguro de que se elimine el disparador anterior y lo vuelvo a crear.

 function actionAtExactHour() { var f = 'myFunction' ScriptApp.getProjectTriggers().filter(trigger => trigger.getHandlerFunction() == f).forEach(t => ScriptApp.deleteTrigger(t)) var d = new Date(); ScriptApp.newTrigger(f) .timeBased() .after((60 - d.getMinutes()) * 60 * 1000) .create() } function myFunction(){ SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue(new Date()) }

Sin embargo, no puedo poner un disparador en actionAtExactHour para, por ejemplo, disparar el disparador diariamente y hacer que myFunction se ejecute todos los días a la hora exacta... Google desactivará ese disparador. Para hacer esto, necesito ejecutar actionAtExactHour unos minutos antes de la hora exacta que quiero.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Es un constructor de JavaScript Date()

 var schedule_date=new Date(year,month,day,hours,minutes);

Constructor de fecha()

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda