Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions config/config.exs
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,23 @@ config :ueberauth, Ueberauth, providers: %{}
# Configure Oban (if using job processing)
config :phoenix_kit, Oban,
repo: PhoenixKit.Repo,
queues: [default: 10, emails: 50, file_processing: 20, posts: 10, scheduled_jobs: 1],
queues: [
default: 10,
emails: 50,
file_processing: 20,
posts: 10,
scheduled_jobs: 1,
sitemap: 5,
sqs_polling: 1,
sync: 5,
shop_imports: 2
],
plugins: [
# Main pruner: 30 days for most queues
{Oban.Plugins.Pruner,
max_age: 60 * 60 * 24 * 30,
queue: [:default, :emails, :file_processing, :posts, :sitemap, :sqs_polling, :sync]},
# Dedicated pruner: 1 day only for scheduled_jobs (cron runs every minute)
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24, queue: [:scheduled_jobs]},
# Pruner: delete completed/discarded jobs after 30 days
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24 * 30},
{Oban.Plugins.Cron,
crontab: [
{"* * * * *", PhoenixKit.ScheduledJobs.Workers.ProcessScheduledJobsWorker},
sitemap: 5,
sqs_polling: 1,
sync: 5,
shop_imports: 2
{"* * * * *", PhoenixKit.ScheduledJobs.Workers.ProcessScheduledJobsWorker}
]}
]

Expand Down
18 changes: 7 additions & 11 deletions lib/phoenix_kit/install/oban_config.ex
Original file line number Diff line number Diff line change
Expand Up @@ -119,17 +119,15 @@ defmodule PhoenixKit.Install.ObanConfig do
emails: 50, # Email processing
file_processing: 20, # File variant generation (storage system)
posts: 10, # Posts scheduled publishing
scheduled_jobs: 1, # Scheduled jobs cron (1-day retention)
scheduled_jobs: 1, # Scheduled jobs cron
sitemap: 5, # Sitemap generation
sqs_polling: 1, # SQS polling for email events (only one concurrent job)
sync: 5, # Sync data import
sync: 5, # Sync data import
newsletters_delivery: 10 # Newsletters broadcast deliveries
],
plugins: [
# Main pruner: 30 days for most queues
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24 * 30, queue: [:default, :emails, :file_processing, :posts, :sitemap, :sqs_polling, :sync]},
# Dedicated pruner: 1 day only for scheduled_jobs (cron runs every minute)
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24, queue: [:scheduled_jobs]},
# Pruner: delete completed/discarded jobs after 30 days
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24 * 30},
{Oban.Plugins.Cron,
crontab: [
{"* * * * *", PhoenixKit.ScheduledJobs.Workers.ProcessScheduledJobsWorker}
Expand Down Expand Up @@ -815,17 +813,15 @@ defmodule PhoenixKit.Install.ObanConfig do
emails: 50,
file_processing: 20,
posts: 10,
scheduled_jobs: 1, # Scheduled jobs cron (1-day retention)
scheduled_jobs: 1,
sitemap: 5,
sqs_polling: 1,
sync: 5,
newsletters_delivery: 10
],
plugins: [
# Main pruner: 30 days for most queues
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24 * 30, queue: [:default, :emails, :file_processing, :posts, :sitemap, :sqs_polling, :sync]},
# Dedicated pruner: 1 day only for scheduled_jobs (cron runs every minute)
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24, queue: [:scheduled_jobs]},
# Pruner: delete completed/discarded jobs after 30 days
{Oban.Plugins.Pruner, max_age: 60 * 60 * 24 * 30},
{Oban.Plugins.Cron,
crontab: [
{"* * * * *", PhoenixKit.ScheduledJobs.Workers.ProcessScheduledJobsWorker}
Expand Down
8 changes: 7 additions & 1 deletion lib/phoenix_kit_web/components/core/phoenix_kit_globals.ex
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,22 @@ defmodule PhoenixKitWeb.Components.Core.PhoenixKitGlobals do
"""
use Phoenix.Component

alias PhoenixKit.Utils.Routes

@doc """
Renders script tags that set PhoenixKit global variables and clear
any cached transport fallback preferences.
"""
attr :rest, :global

def phoenix_kit_globals(assigns) do
prefix = Routes.url_prefix()

assigns = assign(assigns, :prefix, prefix)

~H"""
<script>
window.PHOENIX_KIT_PREFIX = "{PhoenixKit.Utils.Routes.url_prefix()}";
window.PHOENIX_KIT_PREFIX = "<%= @prefix %>";
try{["localStorage","sessionStorage"].forEach(function(s){var t=window[s];Object.keys(t).filter(function(k){return k.indexOf("phx")!==-1&&k.indexOf("phx:")!==0}).forEach(function(k){t.removeItem(k)})})}catch(e){}
// Suppress topbar on initial WebSocket connect — the dead render already shows
// all content, so the connect-phase topbar is just visual noise. LiveView fires
Expand Down
193 changes: 0 additions & 193 deletions runtime.exs

This file was deleted.

Loading