タグ

2016年4月23日のブックマーク (2件)

  • Sidekiq による非同期処理を Redis の分散ロックで排他制御した話 - peroli Developer's Blog

    MERY のサーバーサイドエンジニアの @saidie です。 MERY では画像アップロードや記事投稿による検索インデックス作成などなど、ユーザからのリクエスト起因で起こる時間のかかる処理の多くを非同期に行うことでレスポンスタイムの向上に努めています。また、重複した非同期処理が並行して走ることによる スループット の劣化を分散ロックを用いた 排他制御 で緩和する取り組みなども行っています。 MERY は Ruby on Rails を用いて開発されており、非同期処理には Ruby 製の フレームワーク である Sidekiq を採用しています。この記事では Sidekiq と Redis による分散ロックを使って、同一の非同期処理が(あまり)重複しないような MERY の非同期処理システムについてご紹介します。 Sidekiq Sidekiq はクライアントサー バモ デルのマルチスレッ

    Sidekiq による非同期処理を Redis の分散ロックで排他制御した話 - peroli Developer's Blog
    voidy21
    voidy21 2016/04/23
  • ActiveRecordのconnection_poolで怒られる - PartyIX

    Whalebirdを実装していた時の話. h3poteto.hatenablog.com サーバ側のAPIを実装しているときに,Userstreamタスクを実装したことがあった. Userstreamは,無限ループに入るタスクである. それを利用人数分起動しておく必要があり,それは通知を行う上では避けられない道になってしまう. そのタスクをsidekiqに投げて,sidekiqでいけるところまで投げてみようという実装をした. そっちの負荷はどうでもよくて,今日はそのときに出くわした,ActiveRecordのconnection_poolの話しである. 人数が増えたら怒られた 最初は順調だった. しかし10人くらいになると,なぜかsidekiqに投げていたタスクがほとんどfailしてしまった. ログを見に行くと, in `block in wait_poll': could not obt

    ActiveRecordのconnection_poolで怒られる - PartyIX
    voidy21
    voidy21 2016/04/23