前回までのあらすじ
・Railsでイベントの通知をモデリングする
・通知モデルのユニットテストを実装する
・モデル更新のブロードキャストを確認する
開発環境(development environment)でSolid QueueとSolid Cableを使えるようにします。これでコンソールの変更が画面(ウェブページ)に反映されるようになります。
次の設定ファイルを変更します。
・config/database.yml
・config/cable.yml
・config/environments/development.rb
config/database.yml
データベース設定のdevelopmentを変更してprimary queue cable の3つに分ける。queue と cable はmigrations_pathsでスキーマファイルのパスを設定する。
development:
primary:
<<: *default
database: storage/development.sqlite3
queue:
<<: *default
database: storage/development_queue.sqlite3
migrations_paths: db/queue_migrate
cable:
<<: *default
database: storage/development_cable.sqlite3
migrations_paths: db/cable_migrate
config/cable.yml
development を production と同じにする。
default: &default
adapter: solid_cable
connects_to:
database:
writing: cable
polling_interval: 0.1.seconds
message_retention: 1.day
development:
<<: *default
test:
adapter: test
production:
<<: *default
config/environments/development.rb
Solid Queueを設定する。production.rbの内容をコピーする。
# Replace the default in-process and non-durable queuing backend for Active Job.
config.active_job.queue_adapter = :solid_queue
config.solid_queue.connects_to = { database: { writing: :queue } }
データベースの queue と cable を準備する。
bin/rails db:prepare
アプリサーバーを起動する。今回はデフォルトのDockerfileに書かれているproduction環境の起動方法に合わせて環境変数SOLID_QUEUE_IN_PUMAを設定した。
SOLID_QUEUE_IN_PUMA=1 bin/rails server
コンソールに入る。
bin/rails console
通知モデルを更新する。
Notification.first.update! processed: true
画面が更新されることを確認する。
データベースをマイグレートする時はprimaryを指定する。
bin/rails db:migrate:primary
以上です。
▼この記事がいいね!と思ったらブックマークお願いします