SidekiqとRedisをRubyonRailsアプリケーションに追加する方法
序章
Ruby on Rails アプリケーションを開発する場合、非同期で実行する必要のあるアプリケーションタスクがあることに気付くかもしれません。 データの処理、バッチメールの送信、外部APIとのやり取りはすべて、バックグラウンドジョブと非同期で実行できる作業の例です。 バックグラウンドジョブを使用すると、時間のかかる可能性のあるタスクをバックグラウンド処理キューにオフロードし、元の要求/応答サイクルを解放することで、アプリケーションのパフォーマンスを向上させることができます。
Sidekiq は、Railsアプリケーションに実装できる最も広く使用されているバックグラウンドジョブフレームワークの1つです。 柔軟性とパフォーマンスで知られるメモリ内のKey-ValueストアであるRedisに支えられています。 SidekiqはRedisをジョブ管理ストアとして使用して1秒あたり数千のジョブを処理します。
このチュートリアルでは、RedisとSidekiqを既存のRailsアプリケーションに追加します。 処理するSidekiqワーカークラスとメソッドのセットを作成します。
- プロジェクトリポジトリのCSVファイルからアプリケーションデータベースへの絶滅危惧種のサメ情報のバッチアップロード。
- このデータの削除。
終了すると、ワーカーとジョブを使用してタスクを非同期で処理するデモアプリケーションが作成されます。 これは、このチュートリアルを出発点として使用して、独自のアプリケーションにワーカーとジョブを追加するための優れた基盤になります。
前提条件
このチュートリアルに従うには、次のものが必要です。
- Ubuntu18.04を実行しているローカルマシンまたは開発サーバー。 開発マシンには、管理者権限を持つroot以外のユーザーと、で構成されたファイアウォールが必要です。
ufw
. これを設定する方法については、 Ubuntu18.04を使用した初期サーバー設定のチュートリアルを参照してください。 - Node.jsおよびnpmがローカルマシンまたは開発サーバーにインストールされています。 このチュートリアルでは、Node.jsバージョン10.17.0とnpmバージョン6.11.3を使用します。 Ubuntu 18.04にNode.jsとnpmをインストールする手順については、 Ubuntu18.04にNode.jsをインストールする方法の「PPAを使用したインストール」セクションの手順に従ってください。
- ローカルマシンまたは開発サーバーにインストールされているYarnパッケージマネージャー。 公式ドキュメントのインストール手順に従うことができます。
- Ubuntu18.04でrbenvを使用してRubyonRailsをインストールする方法の手順1〜4 に従って、ローカルマシンまたは開発サーバーにインストールされたRuby、 rbenv 、およびRails 。 このチュートリアルでは、Ruby 2.5.1 、rbenv 1.1.2 、およびRails 5.2.3を使用します。
- Ruby onRailsアプリケーションのステップ1に従ってSQLiteをインストールしました。 このチュートリアルでは、SQLite 3 3.22.0を使用します。
- Ubuntu 18.04 にRedisをインストールして保護する方法のステップ1〜3 に従って、Redisをインストールします。 このチュートリアルでは、Redis 4.0.9を使用します。
ステップ1—プロジェクトのクローンを作成して依存関係をインストールする
最初のステップは、 DigitalOceanCommunityGitHubアカウントからrails-bootstrapリポジトリのクローンを作成することです。 このリポジトリには、ブートストラップをRuby on Railsアプリケーションに追加する方法で説明されているセットアップのコードが含まれています。このコードは、ブートストラップを既存のRails5プロジェクトに追加する方法を説明しています。
リポジトリをと呼ばれるディレクトリに複製します rails-sidekiq
:
- git clone https://github.com/do-community/rails-bootstrap.git rails-sidekiq
に移動します rails-sidekiq
ディレクトリ:
- cd rails-sidekiq
コードを操作するには、最初にプロジェクトの依存関係をインストールする必要があります。これは、Gemfileにリストされています。 SidekiqとRedisを使用するには、プロジェクトに sidekiqgemを追加する必要もあります。
を使用して、編集用にプロジェクトのGemfileを開きます nano
またはお気に入りの編集者:
- nano Gemfile
メインプロジェクトの依存関係(開発の依存関係の上)の任意の場所にgemを追加します。
. . .
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false
gem 'sidekiq', '~>6.0.0'
group :development, :test do
. . .
gemの追加が完了したら、ファイルを保存して閉じます。
次のコマンドを使用して、gemをインストールします。
- bundle install
redisgemも要件としてインストールされていることが出力に表示されます。 sidekiq
.
次に、Yarnの依存関係をインストールします。 このRails5プロジェクトは、webpackでアセットを提供するように変更されているため、JavaScriptの依存関係はYarnによって管理されるようになりました。 これは、プロジェクトにリストされている依存関係をインストールして検証する必要があることを意味します package.json
ファイル。
走る yarn install
これらの依存関係をインストールするには:
- yarn install
次に、データベースの移行を実行します。
- rails db:migrate
移行が完了したら、アプリケーションをテストして、期待どおりに機能していることを確認できます。 ローカルで作業している場合は、次のコマンドを使用して、ローカルバンドルのコンテキストでサーバーを起動します。
- bundle exec rails s
開発サーバーで作業している場合は、次のコマンドでアプリケーションを起動できます。
- bundle exec rails s --binding=your_server_ip
案内する localhost:3000
また http://your_server_ip:3000
. 次のランディングページが表示されます。
新しいサメを作成するには、 Get Shark Info ボタンをクリックすると、に移動します。 sharks/index
ルート:
アプリケーションが機能していることを確認するために、いくつかのデモ情報をアプリケーションに追加できます。 NewSharkをクリックします。 プロジェクトの認証設定のおかげで、ユーザー名( sammy )とパスワード( shark )の入力を求められます。
New Shark ページで、 Name フィールドに「GreatWhite」を入力し、Factsフィールドに「Scary」を入力します。
サメの作成ボタンをクリックしてサメを作成します。 サメが作成されたことを確認したら、次のコマンドでサーバーを強制終了できます。 CTRL+C
.
これで、プロジェクトに必要な依存関係がインストールされ、その機能がテストされました。 次に、Railsアプリケーションにいくつかの変更を加えて、絶滅危惧種のサメのリソースを操作できます。
ステップ2—絶滅危惧種のサメ資源のコントローラーを生成する
絶滅危惧種のサメのリソースを活用するために、アプリケーションに新しいモデルを追加し、絶滅危惧種のサメに関する情報をユーザーに提示する方法を制御するコントローラーを追加します。 私たちの最終的な目標は、ユーザーがアプリケーションの全体的な機能をブロックすることなく、絶滅危惧種のサメに関する大量の情報をアップロードし、不要になったときにその情報を削除できるようにすることです。
まず、作成しましょう Endangered
絶滅危惧種のサメのモデル。 データベーステーブルにサメの名前の文字列フィールドと、国際自然保護連合(IUCN)カテゴリの文字列フィールドを含めます。それぞれのサメが危険にさらされています。
最終的に、モデル構造は、バッチアップロードの作成に使用するCSVファイルの列と一致します。 このファイルはにあります db
ディレクトリ、および次のコマンドでその内容を確認できます。
- cat db/sharks.csv
このファイルには、73の絶滅危惧種のサメとそのIUCNステータスのリストが含まれています。
私たちの Endangered
モデルはこのデータと相関し、新しいデータを作成できるようになります Endangered
このCSVファイルのインスタンス。 次のコマンドを使用してモデルを作成します。
- rails generate model Endangered name:string iucn:string
次に、を生成します Endangered
とコントローラー index
アクション:
- rails generate controller endangered index
これにより、アプリケーションの機能を構築するための開始点が得られますが、Railsが生成したコントローラーファイルにカスタムメソッドを追加する必要もあります。
今すぐそのファイルを開きます:
- nano app/controllers/endangered_controller.rb
Railsは、私たちが記入し始めることができる骨格の輪郭を私たちに提供してくれました。
まず、データを処理するために必要なルートを決定する必要があります。 おかげ generate controller
コマンド、私たちは index
そもそもメソッド。 これは、 index
ビュー。ここでは、絶滅危惧種のサメをアップロードするオプションをユーザーに提示します。
ただし、ユーザーがすでにサメをアップロードしている可能性がある場合にも対処する必要があります。 この場合、アップロードオプションは必要ありません。 どういうわけか、インスタンスの数を評価する必要があります Endangered
バッチアップロードがすでに行われていることを示すクラスが複数あるため、クラスはすでに存在します。
作成することから始めましょう set_endangered
private
私たちの各インスタンスを取得するメソッド Endangered
データベースからのクラス。 次のコードをファイルに追加します。
class EndangeredController < ApplicationController
before_action :set_endangered, only: [:index, :data]
def index
end
private
def set_endangered
@endangered = Endangered.all
end
end
に注意してください before_action
フィルタは、 @endangered
のみに設定されます index
と data
絶滅危惧種のサメのデータを処理するルート。
次に、次のコードをに追加します index
アプリケーションのこの部分にアクセスするユーザーの正しいパスを決定する方法:
class EndangeredController < ApplicationController
before_action :set_endangered, only: [:index, :data]
def index
if @endangered.length > 0
redirect_to endangered_data_path
else
render 'index'
end
end
. . .
私たちのインスタンスが0を超える場合 Endangered
クラスでは、ユーザーをにリダイレクトします data
ルート。作成したサメに関する情報を表示できます。 それ以外の場合は、 index
見る。
次に、以下 index
メソッド、追加 data
メソッド、これは data
見る:
. . .
def index
if @endangered.length > 0
redirect_to endangered_data_path
else
render 'index'
end
end
def data
end
. . .
次に、データのアップロード自体を処理するメソッドを追加します。 このメソッドを呼び出します upload
、およびSidekiqワーカークラスとメソッドを呼び出して、CSVファイルからのデータアップロードを実行します。 このワーカークラスの定義を作成します。 AddEndangeredWorker
、次のステップで。
今のところ、次のコードをファイルに追加して、Sidekiqワーカーを呼び出してアップロードを実行します。
. . .
def data
end
def upload
csv_file = File.join Rails.root, 'db', 'sharks.csv'
AddEndangeredWorker.perform_async(csv_file)
redirect_to endangered_data_path, notice: 'Endangered sharks have been uploaded!'
end
. . .
を呼び出すことによって perform_async
上のメソッド AddEndangeredWorker
クラスでは、CSVファイルを引数として使用して、このコードはサメのデータとアップロードジョブがRedisに渡されるようにします。 セットアップするSidekiqワーカーは、ジョブキューを監視し、新しいジョブが発生したときに応答します。
電話した後 perform_async
、 私たちの upload
メソッドはにリダイレクトします data
パス。ユーザーはアップロードされたサメを見ることができます。
次に、を追加します destroy
データを破棄する方法。 以下のコードを追加します upload
方法:
. . .
def upload
csv_file = File.join Rails.root, 'db', 'sharks.csv'
AddEndangeredWorker.perform_async(csv_file)
redirect_to endangered_data_path, notice: 'Endangered sharks have been uploaded!'
end
def destroy
RemoveEndangeredWorker.perform_async
redirect_to root_path
end
. . .
私たちのように upload
メソッド、私たちの destroy
メソッドには、 perform_async
を呼び出す RemoveEndangeredWorker
クラス–作成するもう1つのSidekiqワーカー。 このメソッドを呼び出した後、ユーザーをルートアプリケーションパスにリダイレクトします。
完成したファイルは次のようになります。
class EndangeredController < ApplicationController
before_action :set_endangered, only: [:index, :data]
def index
if @endangered.length > 0
redirect_to endangered_data_path
else
render 'index'
end
end
def data
end
def upload
csv_file = File.join Rails.root, 'db', 'sharks.csv'
AddEndangeredWorker.perform_async(csv_file)
redirect_to endangered_data_path, notice: 'Endangered sharks have been uploaded!'
end
def destroy
RemoveEndangeredWorker.perform_async
redirect_to root_path
end
private
def set_endangered
@endangered = Endangered.all
end
end
編集が終了したら、ファイルを保存して閉じます。
アプリケーションのルートを固めるための最後のステップとして、次のコードを変更します。 config/routes.rb
、ルート宣言が存在するファイル。
今すぐそのファイルを開きます:
- nano config/routes.rb
現在、ファイルは次のようになっています。
Rails.application.routes.draw do
get 'endangered/index'
get 'home/index'
resources :sharks do
resources :posts
end
root 'home#index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
コントローラで定義したルートを含めるようにファイルを更新する必要があります。 data
, upload
、 と destroy
. 私たちの data
ルートは、サメのデータを取得するためのGETリクエストと一致しますが、 upload
と destroy
ルートは、そのデータをアップロードおよび破棄するPOSTリクエストにマップされます。
次のコードをファイルに追加して、これらのルートを定義します。
Rails.application.routes.draw do
get 'endangered/index'
get 'endangered/data', to: 'endangered#data'
post 'endangered/upload', to: 'endangered#upload'
post 'endangered/destroy', to: 'endangered#destroy'
get 'home/index'
resources :sharks do
resources :posts
end
root 'home#index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
編集が終了したら、ファイルを保存して閉じます。
あなたと Endangered
モデルとコントローラーが配置されたら、Sidekiqワーカークラスの定義に進むことができます。
ステップ3—Sidekiqワーカーの定義
私たちは電話しました perform_async
コントローラ内のSidekiqワーカーのメソッドですが、ワーカー自体を作成する必要があります。
まず、作成します workers
労働者のためのディレクトリ:
- mkdir app/workers
のファイルを開く AddEndangeredWorker
ワーカー:
- nano app/workers/add_endangered_worker.rb
このファイルには、CSVファイルのデータを操作できるようにするコードを追加します。 まず、クラスを作成するファイルにコードを追加し、 Ruby CSVライブラリを含め、このクラスがSidekiqワーカーとして機能することを確認します。
class AddEndangeredWorker
require 'csv'
include Sidekiq::Worker
sidekiq_options retry: false
end
また、 retry: false
失敗した場合にSidekiqがアップロードを再試行しないようにするオプション。
次に、のコードを追加します perform
関数:
class AddEndangeredWorker
require 'csv'
include Sidekiq::Worker
sidekiq_options retry: false
def perform(csv_file)
CSV.foreach(csv_file, headers: true) do |shark|
Endangered.create(name: shark[0], iucn: shark[1])
end
end
end
The perform
メソッドはから引数を受け取ります perform_async
コントローラで定義されたメソッドであるため、引数の値を揃えることが重要です。 ここで、私たちは渡します csv_file
、コントローラーで定義した変数であり、 foreach
CSVライブラリのメソッドを使用して、ファイル内の値を読み取ります。 設定 headers: true
このループでは、ファイルの最初の行がヘッダーの行として扱われるようにします。
次に、ブロックはファイルから値を読み取り、 Endangered
モデル: name
と iucn
. このループを実行すると、 Endangered
CSVファイルの各エントリのインスタンス。
編集が終了したら、ファイルを保存して閉じます。
次に、このデータの削除を処理するワーカーを作成します。 のファイルを開く RemoveEndangeredWorker
クラス:
- nano app/workers/remove_endangered_worker.rb
コードを追加してクラスを定義し、CSVライブラリを使用してSidekiqワーカーとして機能するようにします。
class RemoveEndangeredWorker
include Sidekiq::Worker
sidekiq_options retry: false
end
次に、 perform
絶滅危惧種のサメのデータの破壊を処理する方法:
class RemoveEndangeredWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform
Endangered.destroy_all
end
end
The perform
メソッド呼び出し destroy_all
に Endangered
class。データベースからクラスのすべてのインスタンスを削除します。
編集が終了したら、ファイルを保存して閉じます。
ワーカーが配置されたら、次のレイアウトの作成に進むことができます。 endangered
ビュー、および index
と data
ユーザーが絶滅危惧種のサメをアップロードして表示できるようにするためのビュー。
ステップ4—レイアウトとビューテンプレートを追加する
ユーザーが絶滅の危機に瀕しているサメの情報を楽しむためには、2つのことに取り組む必要があります。 endangered
コントローラ、およびのビューテンプレート index
と data
ビュー。
現在、私たちのアプリケーションは、次の場所にあるアプリケーション全体のレイアウトを利用しています。 app/views/layouts/application.html.erb
、ナビゲーションパーシャル、および sharks
ビュー。 アプリケーションレイアウトはコンテンツブロックをチェックします。これにより、ユーザーがアプリケーションのどの部分を使用しているかに基づいて、さまざまなレイアウトを読み込むことができます。 home
index
ページでは、1つのレイアウトが表示され、個々のサメに関連するビューについては、別のレイアウトが表示されます。
再利用できます sharks
私たちのレイアウト endangered
この形式はサメのデータをまとめて表示する場合にも機能するため、ビュー。
をコピーします sharks
レイアウトファイルを作成して endangered
レイアウト:
- cp app/views/layouts/sharks.html.erb app/views/layouts/endangered.html.erb
次に、次のビューテンプレートの作成に取り組みます。 index
と data
ビュー。
を開きます index
最初のテンプレート:
- nano app/views/endangered/index.html.erb
ボイラープレートコードを削除し、代わりに次のコードを追加します。これにより、ユーザーは絶滅危惧種のカテゴリに関する一般的な情報を入手でき、絶滅危惧種のサメに関する情報をアップロードするオプションが表示されます。
<p id="notice"><%= notice %></p>
<h1>Endangered Sharks</h1>
<p>International Union for Conservation of Nature (ICUN) statuses: <b>vu:</b> Vulnerable, <b>en:</b> Endangered, <b>cr:</b> Critically Endangered </p>
<br>
<%= form_tag endangered_upload_path do %>
<%= submit_tag "Import Endangered Sharks" %>
<% end %>
<br>
<%= link_to 'New Shark', new_shark_path, :class => "btn btn-primary btn-sm" %> <%= link_to 'Home', home_index_path, :class => "btn btn-primary btn-sm" %>
A form_tag
投稿アクションを endangered_upload_path
–アップロード用に定義したルート。 で作成された送信ボタン submit_tag
、ユーザーに "Import Endangered Sharks"
.
このコードに加えて、ICUNコードに関する一般的な情報が含まれているため、ユーザーは表示されるデータを解釈できます。
編集が終了したら、ファイルを保存して閉じます。
次に、のファイルを開きます data
見る:
- nano app/views/endangered/data.html.erb
次のコードを追加します。これにより、絶滅危惧種のサメのデータを含むテーブルが追加されます。
<p id="notice"><%= notice %></p>
<h1>Endangered Sharks</h1>
<p>International Union for Conservation of Nature (ICUN) statuses: <b>vu:</b> Vulnerable, <b>en:</b> Endangered, <b>cr:</b> Critically Endangered </p>
<div class="table-responsive">
<table class="table table-striped table-dark">
<thead>
<tr>
<th>Name</th>
<th>IUCN Status</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @endangered.each do |shark| %>
<tr>
<td><%= shark.name %></td>
<td><%= shark.iucn %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
<br>
<%= form_tag endangered_destroy_path do %>
<%= submit_tag "Delete Endangered Sharks" %>
<% end %>
<br>
<%= link_to 'New Shark', new_shark_path, :class => "btn btn-primary btn-sm" %> <%= link_to 'Home', home_index_path, :class => "btn btn-primary btn-sm" %>
このコードには、ICUNステータスコードと、出力されたデータのブートストラップテーブルが含まれています。 私たちをループすることによって @endangered
変数、各サメの名前とICUNステータスをテーブルに出力します。
表の下に、別のセットがあります form_tags
と submit_tags
、に投稿する destroy
ユーザーに次のオプションを提供することによるパス "Delete Endangered Sharks"
.
編集が終了したら、ファイルを保存して閉じます。
ビューに加える最後の変更は、 index
私たちに関連付けられているビュー home
コントローラ。 このビューがでアプリケーションのルートとして設定されていることを思い出してください。 config/routes.rb
.
このファイルを開いて編集します。
- nano app/views/home/index.html.erb
次の行の列を検索します Sharks are ancient
:
. . .
<div class="col-lg-6">
<h3>Sharks are ancient</h3>
<p>There is evidence to suggest that sharks lived up to 400 million years ago.
</p>
</div>
</div>
</div>
次のコードをファイルに追加します。
. . .
<div class="col-lg-6">
<h3>Sharks are ancient and SOME are in danger</h3>
<p>There is evidence to suggest that sharks lived up to 400 million years ago. Without our help, some could disappear soon.</p>
<p><%= button_to 'Which Sharks Are in Danger?', endangered_index_path, :method => :get, :class => "btn btn-primary btn-sm"%>
</p>
</div>
</div>
</div>
最初に強力なメッセージを共有し、次に button_to
GETリクエストを送信するヘルパー endangered
index
ルート、ユーザーにアプリケーションのその部分へのアクセスを許可します。 そこから、絶滅危惧種のサメの情報をアップロードして表示できるようになります。
編集が終了したら、ファイルを保存して閉じます。
コードを配置したら、アプリケーションを起動してサメをアップロードする準備が整います。
ステップ5—Sidekiqを起動してアプリケーションをテストする
アプリケーションを開始する前に、データベースで移行を実行し、Sidekiqを開始してワーカーを有効にする必要があります。 Redisはすでにサーバー上で実行されているはずですが、確認することができます。 これらすべてが整ったら、アプリケーションをテストする準備が整います。
まず、Redisが実行されていることを確認します。
- systemctl status redis
次のような出力が表示されます。
Output● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-11-12 20:37:13 UTC; 1 weeks 0 days ago
次に、データベースの移行を実行します。
- rails db:migrate
これで、現在のプロジェクトバンドルのコンテキストでSidekiqを起動できます。 bundle exec sidekiq
指図:
- bundle exec sidekiq
Sidekiqがジョブを処理する準備ができていることを示す次のような出力が表示されます。
Output
m,
`$b
.ss, $$: .,d$
`$$P,d$P' .,md$P"'
,$$$$$b/md$$$P^'
.d$$$$$$/$$$P'
$$^' `"/$$$' ____ _ _ _ _
$: ,$$: / ___|(_) __| | ___| | _(_) __ _
`b :$$ \___ \| |/ _` |/ _ \ |/ / |/ _` |
$$: ___) | | (_| | __/ <| | (_| |
$$ |____/|_|\__,_|\___|_|\_\_|\__, |
.d$$ |_|
2019-11-19T21:43:00.540Z pid=17621 tid=gpiqiesdl INFO: Running in ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
2019-11-19T21:43:00.540Z pid=17621 tid=gpiqiesdl INFO: See LICENSE and the LGPL-3.0 for licensing details.
2019-11-19T21:43:00.540Z pid=17621 tid=gpiqiesdl INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
2019-11-19T21:43:00.540Z pid=17621 tid=gpiqiesdl INFO: Booting Sidekiq 6.0.3 with redis options {:id=>"Sidekiq-server-PID-17621", :url=>nil}
2019-11-19T21:43:00.543Z pid=17621 tid=gpiqiesdl INFO: Starting processing, hit Ctrl-C to stop
2番目のターミナルウィンドウを開き、に移動します rails-sidekiq
ディレクトリを作成し、アプリケーションサーバーを起動します。
アプリケーションをローカルで実行している場合は、次のコマンドを使用します。
- bundle exec rails s
開発サーバーを使用している場合は、以下を実行します。
- bundle exec rails s --binding=your_server_ip
案内する localhost:3000
また http://your_server_ip:3000
ブラウザで。 次のランディングページが表示されます。
どのサメが危険にさらされていますか?ボタンをクリックします。 絶滅危惧種のサメをアップロードしていないので、 endangered
index
見る:
絶滅危惧種のサメのインポートをクリックして、サメをインポートします。 サメが輸入されたことを知らせるステータスメッセージが表示されます。
インポートの開始も表示されます。 ページを更新して、テーブル全体を表示します。
Sidekiqのおかげで、絶滅危惧種のサメの大量のバッチアップロードは、ブラウザをロックしたり、他のアプリケーション機能に干渉したりすることなく成功しました。
ページの下部にあるホームボタンをクリックすると、アプリケーションのメインページに戻ります。
ここから、どのサメが危険にさらされていますか?をもう一度クリックします。 これで、直接 data
すでにサメをアップロードしているので、表示します。
削除機能をテストするには、表の下にある絶滅危惧種のサメの削除ボタンをクリックします。 もう一度ホームページにリダイレクトされます。 どのサメが危険にさらされていますか?を最後にもう一度クリックすると、 index
ビュー。サメを再度アップロードするオプションがあります。
これで、アプリケーションはSidekiqワーカーを使用して実行されます。これにより、ジョブを処理し、ユーザーがアプリケーションを適切に操作できるようになります。
結論
これで、Sidekiqが有効になっているRailsアプリケーションが機能するようになりました。これにより、コストのかかる操作をSidekiqが管理し、Redisがサポートするジョブキューにオフロードできます。 これにより、開発中にサイトの速度と機能を向上させることができます。
Sidekiqについて詳しく知りたい場合は、docsから始めるとよいでしょう。
Redisの詳細については、Redisリソースのライブラリをご覧ください。 製品ドキュメントを参照して、DigitalOceanでマネージドRedisクラスターを実行する方法についても学ぶことができます。