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

118
Vistas
Error al usar Firebase Emulators PubSub para la función cronometrada

Tengo una función de nube cronometrada que estoy tratando de probar en el emulador de Firebase. Para hacer esto, estoy usando la solución descrita aquí ( Cómo invocar las funciones de Programación de firebase localmente usando el emulador de pubsub ) que activa la función programada usando un mensaje de Pub/Sub.

Esta solución activa con éxito la función, pero parece estar repitiendo sus llamadas más de lo esperado. Por ejemplo, cuando ejecuto el siguiente código, debería estar llamando a la función programada cada minuto: sin embargo, ejecuta el código una vez después de un minuto, luego dos veces después de 2 minutos (por lo que se ejecutó 3 veces en total), luego tres veces después 3 veces (por lo que se ejecutó 6 veces en total), y continúa aumentando sus llamadas desde allí, lo que sugiere que se está llamando a setInterval() más de una vez (tengo setInterval() en mi archivo Firebase index.js). ¿Hay alguna forma de arreglar esto? Muchísimas gracias.

 const pubsub = new PubSub({ apiEndpoint: 'localhost:8085' }); setInterval(() => { const SCHEDULED_FUNCTION_TOPIC = 'firebase-schedule-yourFunctionName'; console.log(`Trigger sheduled function via PubSub topic: ${SCHEDULED_FUNCTION_TOPIC}`); const msg = await pubsub.topic(SCHEDULED_FUNCTION_TOPIC).publishJSON({ foo: 'bar', }, { attr1: 'value1' }); }, 1 * 60 * 1000); // every 1 minute
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Repliqué tu caso pero no hay problema de mi parte. Aquí está mi código fuente completo:

índice.js :

 const admin = require("firebase-admin"); const functions = require("firebase-functions"); const { PubSub } = require("@google-cloud/pubsub"); const pubsub = new PubSub(); admin.initializeApp(); const date_ob = new Date(); exports.pubsubScheduled = functions.pubsub.schedule("every mon 07:00").onRun((context) => { console.log("========== PUBSUB FUNCTION =========="); console.log("Time", new Date()); return true; });

disparador.js :

 const admin = require("firebase-admin"); const functions = require("firebase-functions"); const { PubSub } = require("@google-cloud/pubsub"); admin.initializeApp(); var date_ob = new Date(); const pubsub = new PubSub({ apiEndpoint: 'localhost:8085' // Change it to your PubSub emulator address and port }); setInterval(() => { const SCHEDULED_FUNCTION_TOPIC = 'firebase-schedule-pubsubScheduled'; console.log(`Trigger sheduled function via PubSub topic: ${SCHEDULED_FUNCTION_TOPIC} at ${new Date()}`); const msg = pubsub.topic(SCHEDULED_FUNCTION_TOPIC).publishJSON({ foo: 'bar', }, { attr1: 'value1' }); }, 1 * 60 * 1000); // every 1 minute

Después de ejecutar el emulador, active el código ( trigger.js ) no hay problema y todo funciona bien, no apareció ninguna salida múltiple. Puede editar su pregunta y agregar más detalles sobre cómo podemos reproducir su problema.

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