まちクエスト 運営ブログ

まちクエストからのお知らせや開発秘話などをお届けしていきます

メールの送信を非同期で処理することで高速化を実現しました

まちクエストでは Ruby on Rails を開発フレームワークとして使っていますが、その Rails で非同期処理を実現する delayed_job を使うことでコメント投稿やお気に入りの各機能を高速化しました。

どういうことか簡単に説明してみます。

今まで例えば

  1. コメントを記入して「投稿」ボタンを押す(0.1秒)
  2. エストの作成者に「コメントがありました」とメールで通知(2秒)
  3. 投稿されたコメントを表示(0.1秒)

という処理があり、それぞれカッコ内(実際の所要時間とは異なります)はその処理にかかる時間とすると、メールの送信処理というのは時間がかかる処理であるため、合計で2.2秒と結構な時間がかかってしまっていました。

今回メールの送信を非同期でおこなうようにしたため、

  1. コメントを記入して「投稿」ボタンを押す(0.1秒)
  2. 投稿されたコメントを表示(0.1秒)

  1. エストの作成者に「コメントがありました」とメールで通知(2秒)

とは別々に処理されるようになり、ユーザーが感じる待ち時間は最初の2つの処理にかかる時間0.2秒だけになりました。

今後も非同期化することによってユーザーの待ち時間が減るような処理は積極的に delayed_job に移していこうと思っています。

© Machiquest