Merge pull request #20285 from Homebrew/download_queue_tweaks
Improve Download Queue behaviour
This commit is contained in:
commit
6261551636
@ -55,19 +55,18 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(download_queue: T.nilable(::Homebrew::DownloadQueue))
|
params(download_queue: T.nilable(::Homebrew::DownloadQueue), stale_seconds: Integer)
|
||||||
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
||||||
}
|
}
|
||||||
def self.fetch_api!(download_queue: nil)
|
def self.fetch_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i)
|
||||||
Homebrew::API.fetch_json_api_file api_filename, download_queue:
|
Homebrew::API.fetch_json_api_file api_filename, stale_seconds:, download_queue:
|
||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(download_queue: T.nilable(::Homebrew::DownloadQueue))
|
params(download_queue: T.nilable(::Homebrew::DownloadQueue), stale_seconds: Integer)
|
||||||
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
||||||
}
|
}
|
||||||
def self.fetch_tap_migrations!(download_queue: nil)
|
def self.fetch_tap_migrations!(download_queue: nil, stale_seconds: Homebrew::API::TAP_MIGRATIONS_STALE_SECONDS)
|
||||||
stale_seconds = Homebrew::API::TAP_MIGRATIONS_STALE_SECONDS
|
|
||||||
Homebrew::API.fetch_json_api_file "cask_tap_migrations.jws.json", stale_seconds:, download_queue:
|
Homebrew::API.fetch_json_api_file "cask_tap_migrations.jws.json", stale_seconds:, download_queue:
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -55,19 +55,18 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(download_queue: T.nilable(Homebrew::DownloadQueue))
|
params(download_queue: T.nilable(Homebrew::DownloadQueue), stale_seconds: Integer)
|
||||||
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
||||||
}
|
}
|
||||||
def self.fetch_api!(download_queue: nil)
|
def self.fetch_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i)
|
||||||
Homebrew::API.fetch_json_api_file api_filename, download_queue:
|
Homebrew::API.fetch_json_api_file api_filename, stale_seconds:, download_queue:
|
||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(download_queue: T.nilable(Homebrew::DownloadQueue))
|
params(download_queue: T.nilable(Homebrew::DownloadQueue), stale_seconds: Integer)
|
||||||
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
.returns([T.any(T::Array[T.untyped], T::Hash[String, T.untyped]), T::Boolean])
|
||||||
}
|
}
|
||||||
def self.fetch_tap_migrations!(download_queue: nil)
|
def self.fetch_tap_migrations!(download_queue: nil, stale_seconds: Homebrew::API::TAP_MIGRATIONS_STALE_SECONDS)
|
||||||
stale_seconds = Homebrew::API::TAP_MIGRATIONS_STALE_SECONDS
|
|
||||||
Homebrew::API.fetch_json_api_file "formula_tap_migrations.jws.json", stale_seconds:, download_queue:
|
Homebrew::API.fetch_json_api_file "formula_tap_migrations.jws.json", stale_seconds:, download_queue:
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -88,16 +88,17 @@ begin
|
|||||||
cmd_class = Homebrew::AbstractCommand.command(cmd)
|
cmd_class = Homebrew::AbstractCommand.command(cmd)
|
||||||
Homebrew.running_command = cmd
|
Homebrew.running_command = cmd
|
||||||
if cmd_class
|
if cmd_class
|
||||||
if Homebrew::EnvConfig.download_concurrency > 1
|
if !Homebrew::EnvConfig.no_install_from_api? && Homebrew::EnvConfig.download_concurrency > 1
|
||||||
require "download_queue"
|
require "download_queue"
|
||||||
require "api"
|
require "api"
|
||||||
require "api/formula"
|
require "api/formula"
|
||||||
require "api/cask"
|
require "api/cask"
|
||||||
download_queue = Homebrew::DownloadQueue.new
|
download_queue = Homebrew::DownloadQueue.new
|
||||||
Homebrew::API::Formula.fetch_api!(download_queue:)
|
stale_seconds = 86400 # 1 day
|
||||||
Homebrew::API::Formula.fetch_tap_migrations!(download_queue:)
|
Homebrew::API::Formula.fetch_api!(download_queue:, stale_seconds:)
|
||||||
Homebrew::API::Cask.fetch_api!(download_queue:)
|
Homebrew::API::Formula.fetch_tap_migrations!(download_queue:, stale_seconds:)
|
||||||
Homebrew::API::Cask.fetch_tap_migrations!(download_queue:)
|
Homebrew::API::Cask.fetch_api!(download_queue:, stale_seconds:)
|
||||||
|
Homebrew::API::Cask.fetch_tap_migrations!(download_queue:, stale_seconds:)
|
||||||
begin
|
begin
|
||||||
download_queue.fetch
|
download_queue.fetch
|
||||||
ensure
|
ensure
|
||||||
|
@ -184,7 +184,7 @@ module Homebrew
|
|||||||
|
|
||||||
sig { returns(Integer) }
|
sig { returns(Integer) }
|
||||||
def retries
|
def retries
|
||||||
@retries ||= T.let(args.retry? ? FETCH_MAX_TRIES : 0, T.nilable(Integer))
|
@retries ||= T.let(args.retry? ? FETCH_MAX_TRIES : 1, T.nilable(Integer))
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { returns(DownloadQueue) }
|
sig { returns(DownloadQueue) }
|
||||||
|
@ -9,7 +9,7 @@ require "retryable_download"
|
|||||||
module Homebrew
|
module Homebrew
|
||||||
class DownloadQueue
|
class DownloadQueue
|
||||||
sig { params(retries: Integer, force: T::Boolean, pour: T::Boolean).void }
|
sig { params(retries: Integer, force: T::Boolean, pour: T::Boolean).void }
|
||||||
def initialize(retries: 0, force: false, pour: false)
|
def initialize(retries: 1, force: false, pour: false)
|
||||||
@concurrency = T.let(EnvConfig.download_concurrency, Integer)
|
@concurrency = T.let(EnvConfig.download_concurrency, Integer)
|
||||||
@quiet = T.let(@concurrency > 1, T::Boolean)
|
@quiet = T.let(@concurrency > 1, T::Boolean)
|
||||||
@tries = T.let(retries + 1, Integer)
|
@tries = T.let(retries + 1, Integer)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user