Install solid_cable

This commit is contained in:
Andrew Tomaka 2025-01-17 00:15:27 -05:00
parent 55a07d49d2
commit 97b0460f38
Signed by: atomaka
GPG key ID: 61209BF70A5B18BE
5 changed files with 32 additions and 3 deletions

View file

@ -20,6 +20,7 @@ gem "jbuilder"
# Use Redis adapter to run Action Cable in production # Use Redis adapter to run Action Cable in production
# gem "redis", ">= 4.0.1" # gem "redis", ">= 4.0.1"
gem "solid_cable"
gem "solid_cache" gem "solid_cache"
gem "solid_queue" gem "solid_queue"

View file

@ -259,6 +259,11 @@ GEM
rexml (~> 3.2, >= 3.2.5) rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0) rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0) websocket (~> 1.0)
solid_cable (3.0.5)
actioncable (>= 7.2)
activejob (>= 7.2)
activerecord (>= 7.2)
railties (>= 7.2)
solid_cache (1.0.6) solid_cache (1.0.6)
activejob (>= 7.2) activejob (>= 7.2)
activerecord (>= 7.2) activerecord (>= 7.2)
@ -327,6 +332,7 @@ DEPENDENCIES
rails! rails!
rubocop-rails-omakase rubocop-rails-omakase
selenium-webdriver selenium-webdriver
solid_cable
solid_cache solid_cache
solid_queue solid_queue
sqlite3 (>= 1.4) sqlite3 (>= 1.4)

View file

@ -1,3 +1,7 @@
# Async adapter only works within the same process, so for manually triggering cable updates from a console,
# and seeing results in the browser, you must do so from the web console (running inside the dev process),
# not a terminal started via bin/rails console! Add "console" to any action or any ERB template view
# to make the web console appear.
development: development:
adapter: async adapter: async
@ -5,6 +9,9 @@ test:
adapter: test adapter: test
production: production:
adapter: redis adapter: solid_cable
url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> connects_to:
channel_prefix: family_budget_production database:
writing: cable
polling_interval: 0.1.seconds
message_retention: 1.day

View file

@ -42,3 +42,7 @@ production:
<<: *default <<: *default
database: storage/production_queue.sqlite3 database: storage/production_queue.sqlite3
migrations_paths: db/queue_migrate migrations_paths: db/queue_migrate
cable:
<<: *default
database: storage/production_cable.sqlite3
migrations_paths: db/cable_migrate

11
db/cable_schema.rb Normal file
View file

@ -0,0 +1,11 @@
ActiveRecord::Schema[7.1].define(version: 1) do
create_table "solid_cable_messages", force: :cascade do |t|
t.binary "channel", limit: 1024, null: false
t.binary "payload", limit: 536870912, null: false
t.datetime "created_at", null: false
t.integer "channel_hash", limit: 8, null: false
t.index ["channel"], name: "index_solid_cable_messages_on_channel"
t.index ["channel_hash"], name: "index_solid_cable_messages_on_channel_hash"
t.index ["created_at"], name: "index_solid_cable_messages_on_created_at"
end
end