mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-10-09 08:10:08 +09:00
88acc4e026
Disable wal_autocheckpoint and run PASSIVE checkpoints from one elected writer process. Contenders start in console/rake (initializer), Puma workers (including WEB_CONCURRENCY=auto), and Resque children, with failover, capped error backoff, and tests for lock takeover. Co-authored-by: Thomas Klemm <github@tklemm.eu>
11 lines
454 B
Ruby
11 lines
454 B
Ruby
# Start a checkpoint contender in console, runner, rake and other non-Puma writers.
|
|
# Puma skips this path: config/puma.rb and config/puma_dev.rb start after the
|
|
# correct process is chosen (worker boot vs single-process), so the master that
|
|
# only forks workers never holds the lock alone. Resque starts after_prefork.
|
|
Rails.application.config.after_initialize do
|
|
next if Rails.env.test?
|
|
next if defined?(Puma::CLI)
|
|
|
|
SqliteWalCheckpoint.start
|
|
end
|