From 8d7e4d2b6406ee9a34204e94454ff4c4a84e7ad8 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 10 May 2021 13:55:36 -0300 Subject: [PATCH] solo poner en cola una sola vez MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit el cambio anterior no permitía que se encolen varias compilaciones y la versión actual pone el sitio en cola mientras se está compilando. con este cambio el sitio se puede encolar varias veces pero el estado se cambia una sola vez, para no abrirle la puerta a un loop infinito de compilaciones. lo correcto sería generar un modelo de cola con su propio estado (y probablemente a partir de cuál commit se está compilando). --- app/controllers/sites_controller.rb | 3 ++- app/models/site.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/sites_controller.rb b/app/controllers/sites_controller.rb index d7d2f9f..22429f3 100644 --- a/app/controllers/sites_controller.rb +++ b/app/controllers/sites_controller.rb @@ -63,7 +63,8 @@ class SitesController < ApplicationController authorize site # XXX: Convertir en una máquina de estados? - DeployJob.perform_async site.id if site.enqueue! + site.enqueue! + DeployJob.perform_async site.id redirect_to site_posts_path(site) end diff --git a/app/models/site.rb b/app/models/site.rb index 7aeb8a9..683541e 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -315,7 +315,7 @@ class Site < ApplicationRecord # Poner en la cola de compilación def enqueue! - waiting? && update(status: 'enqueued') + update(status: 'enqueued') if waiting? end # Está en la cola de compilación?