私は Java の世界から来ましたが、Ruby/Rails の世界では「ワーカー」という言葉をよく耳にします。それは何ですか?糸?
3 に答える
文脈によります。
ワーカーは通常、アプリケーションのリクエスト サイクル外で実行されるプロセスです。通常、 resqueやdelayed_jobなどの Ruby ライブラリは、ワーカー キューの管理に使用されます。
一方、Web サーバーについて話している場合、「ワーカー」という言葉は、スレッドまたはプロセスと同じ意味で使用されることがあります (つまり、nginx または apache の「ワーカー」)。
多くの場合、「Rails の世界」では、ワーカーは、アプリケーション サイクルの外で実行するタスクをポップする個別のプロセスを持つプライオリティ キュー タイプのシステムを参照しています。これらのシステムの中で最も人気のあるものの 1 つはDelayedJobsです。これは、データベース移行を使用して、ワーカー プロセスによって実行されるタスクを保持するテーブルを追加します。次に、DelayedJobs キュー テーブルをチェックしてシリアル化されたタスクを実行するワーカー プロセスをいくつでも構成できます。DelayedJobs を使用すると、さまざまなタスクの優先度を設定できるだけでなく、タスクを実行する時間枠も設定できます。今から 1 時間後に特定のメールを送信します。
Rails アプリを実行するサーバーはワーカーを使用して、アプリケーションが必要とするすべてのことを行います。メールの送信、リクエストの実行、計算の実行などを行います。必要なワーカーの数は、Web アプリが実行する必要があるトラフィックと計算の量によって異なります。