mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-22 11:16:22 +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:
parent
a0caa5ca95
commit
10580d2b4f
1 changed files with 10 additions and 3 deletions
|
@ -8,13 +8,20 @@ class DeployJob < ApplicationJob
|
||||||
def perform(site, notify = true)
|
def perform(site, notify = true)
|
||||||
ActiveRecord::Base.connection_pool.with_connection do
|
ActiveRecord::Base.connection_pool.with_connection do
|
||||||
@site = Site.find(site)
|
@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!
|
# Asegurarse que DeployLocal sea el primero!
|
||||||
@deployed = { deploy_local: deploy_locally }
|
@deployed = { deploy_local: deploy_locally }
|
||||||
|
|
||||||
# No es opcional
|
# No es opcional
|
||||||
unless @deployed[:deploy_local]
|
unless @deployed[:deploy_local]
|
||||||
@site.update_attribute :status, 'waiting'
|
@site.update status: 'waiting'
|
||||||
notify_usuaries if notify
|
notify_usuaries if notify
|
||||||
|
|
||||||
# Hacer fallar la tarea
|
# Hacer fallar la tarea
|
||||||
|
@ -23,7 +30,7 @@ class DeployJob < ApplicationJob
|
||||||
|
|
||||||
deploy_others
|
deploy_others
|
||||||
notify_usuaries if notify
|
notify_usuaries if notify
|
||||||
@site.update_attribute :status, 'waiting'
|
@site.update status: 'waiting'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# rubocop:enable Metrics/MethodLength
|
# rubocop:enable Metrics/MethodLength
|
||||||
|
|
Loading…
Reference in a new issue