Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

115
Views
Slack Bolt espera ack () - asíncrono

Estoy tratando de implementar un flujo de trabajo de creación de tareas usando modal de holgura. El flujo de trabajo de creación de tareas a veces tarda más de 3 segundos en ejecutarse y obtener el resultado. Entonces, según la documentación , llamé await ack() para reconocer al comienzo del flujo de trabajo, pero ack() no envía la respuesta de reconocimiento al comienzo del flujo de trabajo. En su lugar, está esperando que se complete el flujo de trabajo y luego envía la respuesta de reconocimiento.

Para probar esto, reemplacé el flujo de trabajo con una declaración de suspensión y llamé a la función ack() con una declaración de espera antes de la suspensión. Este código no se reconoce en 3 segundos. Entonces, la aplicación Slack muestra un mensaje de error, ingrese la descripción de la imagen aquí

 // handle create task modal submission app.view('create-task', async ({ ack, ...options }) => { await ack() logger.debug(`Sleeping ${new Date().getTime()}`); await new Promise((r) => setTimeout(r, 5000)); logger.debug(`Woke up ${new Date().getTime()}`); });

Por otro lado, si reduzco el intervalo de suspensión a 2 segundos, el código anterior funciona y no aparece ningún error. Esto indica que el reconocimiento se produce después de que se completa el flujo de trabajo (la función de devolución de llamada se ejecuta por completo). Entonces, ¿cómo puedo reconocer la solicitud antes de ingresar a la suspensión (flujo de trabajo de creación de tareas)?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Utiliza AwsLambdaReceiver o processBeforeResponse: true para ejecutar su código en FaaS? Si es así, este es un comportamiento intencional del marco bolt-js. Consulte https://github.com/slackapi/bolt-js/issues/1119 para conocer su contexto.

Como soluciones alternativas, sugeriría ir con cualquiera de los siguientes:

  • Cambie a tiempo de ejecución que no sea FaaS (= ejecute su aplicación en EC2 o servicios de contenedor)
  • Ejecute la parte que consume mucho tiempo por separado (= ponga en cola las tareas en SQS o invoque una nueva función lambda para la parte que consume mucho tiempo desde la función orientada a Internet)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!