- children: [
- %{
- key: :federation,
- type: :keyword,
- description: "Settings for federation pool.",
- children: [
- %{
- key: :size,
- type: :integer,
- description: "Number workers in the pool.",
- suggestions: [50]
- },
- %{
- key: :max_overflow,
- type: :integer,
- description: "Number of additional workers if pool is under load.",
- suggestions: [10]
- },
- %{
- key: :timeout,
- type: :integer,
- description: "Timeout while `gun` will wait for response.",
- suggestions: [150_000]
- }
- ]
- },
- %{
- key: :media,
- type: :keyword,
- description: "Settings for media pool.",
- children: [
- %{
- key: :size,
- type: :integer,
- description: "Number workers in the pool.",
- suggestions: [50]
- },
- %{
- key: :max_overflow,
- type: :integer,
- description: "Number of additional workers if pool is under load.",
- suggestions: [10]
- },
- %{
- key: :timeout,
- type: :integer,
- description: "Timeout while `gun` will wait for response.",
- suggestions: [150_000]
- }
- ]
- },
- %{
- key: :upload,
- type: :keyword,
- description: "Settings for upload pool.",
- children: [
- %{
- key: :size,
- type: :integer,
- description: "Number workers in the pool.",
- suggestions: [25]
- },
- %{
- key: :max_overflow,
- type: :integer,
- description: "Number of additional workers if pool is under load.",
- suggestions: [5]
- },
- %{
- key: :timeout,
- type: :integer,
- description: "Timeout while `gun` will wait for response.",
- suggestions: [300_000]
- }
- ]
- },
- %{
- key: :default,
- type: :keyword,
- description: "Settings for default pool.",
- children: [
- %{
- key: :size,
- type: :integer,
- description: "Number workers in the pool.",
- suggestions: [10]
- },
- %{
- key: :max_overflow,
- type: :integer,
- description: "Number of additional workers if pool is under load.",
- suggestions: [2]
- },
- %{
- key: :timeout,
- type: :integer,
- description: "Timeout while `gun` will wait for response.",
- suggestions: [10_000]
- }
- ]
- }
- ]
+ children:
+ Enum.map([:federation, :media, :upload, :default], fn pool_name ->
+ %{
+ key: pool_name,
+ type: :keyword,
+ description: "Settings for #{pool_name} pool.",
+ children: [
+ %{
+ key: :size,
+ type: :integer,
+ description: "Maximum number of concurrent requests in the pool.",
+ suggestions: [50]
+ },
+ %{
+ key: :max_waiting,
+ type: :integer,
+ description:
+ "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made",
+ suggestions: [10]
+ }
+ ]
+ }
+ end)