es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ejecutar un trabajo en modo desvinculado en Gitlab?

¿Alguien puede por favor decirme cómo ejecutar un trabajo en modo desvinculado? Un trabajo en mi canalización se tarda 30 minutos en completarse y quiero que la canalización continúe sin esperar a que este trabajo finalice.

Por ejemplo:

etapas:
  - construir
  - construir2
  - probar
newservice:
  etapa: construir
  script:
    - echo "construcción finalizada"
newservice1:
  etapa: construir2
  script:
    - echo "construcción 1 finalizada"
    - sleep 60
mygotservice:
  etapa: probar
  necesita: ["newservice"]
  script:
    - echo "prueba finalizada"

Quiero que la canalización continúe sin esperar a newservice1.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar un trabajo en modo desacoplado en GitLab, puedes usar el símbolo ampersand (&) al final del comando en la sección de script de tu trabajo. Esto hará que el trabajo se ejecute en segundo plano y no bloquee los trabajos subsiguientes en la canalización.

    En tu ejemplo de canalización, si deseas ejecutar el trabajo newservice1 en modo desacoplado, puedes modificar la sección de script de la siguiente manera:

    newservice1:
      stage: build2
      script:
        - echo "build1 is done" &
        - sleep 1800 # este trabajo se ejecutará en segundo plano mientras la canalización continúa
    

    Esto ejecutará el comando echo en segundo plano y procederá inmediatamente al siguiente trabajo en la canalización. Ten en cuenta que el comando sleep en este trabajo también se ejecutará en segundo plano, por lo que puede continuar ejecutándose incluso después de que la canalización haya finalizado.

    También puedes usar el símbolo & para ejecutar varios comandos en segundo plano, de la siguiente manera:

    newservice1:
      stage: build2
      script:
        - echo "build1 is done" & sleep 1800 &
    

    Esto ejecutará tanto los comandos echo como sleep en segundo plano, permitiendo que la canalización continúe sin esperar a que este trabajo se complete.

Comments are closed.