5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-14 17:51:41 +00:00

compilar el sitio de a uno por vez

estamos deshabilitando el botón en el panel, pero gracias a la caché (o
si le usuarie tiene el botón ya abierto y habilitado) es posible correr
dos o más tareas de compilación a la vez, lo que produce errores.  por
ejemplo, que una compilación falle porque quiere comprimir archivos que
ya no están.

con este cambio, si un sitio está compilando, la tarea se aplaza un
minuto.  si hay muchas tareas, eventualmente se harán todas pero no se
pisan entre sí.

quizás lo correcto sería hacerlo cuando se lanza la compilación también.
This commit is contained in:
f 2021-05-10 10:56:08 -03:00
parent a0caa5ca95
commit 10580d2b4f

View file

@ -8,13 +8,20 @@ class DeployJob < ApplicationJob
def perform(site, notify = true)
ActiveRecord::Base.connection_pool.with_connection do
@site = Site.find(site)
@site.update_attribute :status, 'building'
# Si ya hay una tarea corriendo, aplazar esta
if @site.status == 'building'
DeployJob.perform_in(60, site, notify)
return
end
@site.update status: 'building'
# Asegurarse que DeployLocal sea el primero!
@deployed = { deploy_local: deploy_locally }
# No es opcional
unless @deployed[:deploy_local]
@site.update_attribute :status, 'waiting'
@site.update status: 'waiting'
notify_usuaries if notify
# Hacer fallar la tarea
@ -23,7 +30,7 @@ class DeployJob < ApplicationJob
deploy_others
notify_usuaries if notify
@site.update_attribute :status, 'waiting'
@site.update status: 'waiting'
end
end
# rubocop:enable Metrics/MethodLength