Railsで非同期処理を行う際にデファクトになりつつあるSidekiqですが、実際の運用ノウハウや少し踏み込んだトラブルシューティングは意外とまだウェブ上にリソースが不足しているという印象があります。そこでいくつか、基本的なことから少し踏み込んだ話まで、いくつか紹介したいと思います。 Sidekiqの導入・運用 Sidekiqの導入にはRedisが必要であるということはよく説明されるのですが、もう少し正確に言うとRedisをデータ保存先としてSidekiqというプロセスがスレッドベースで動きます。したがって正常にSidekiqが動くためには通常のRailsのプロセス(unicornやpassenger)のほかに、redis-serverのプロセス、Sidekiqのプロセスが動き続けていることが必要になります。(厳密に言えばSidekiqだけ動けばいいならRailsプロセスは不要です) re
Gem · Code · Docs · Wiki
Sidekiqを動かすためにAWSのElasticacheを使用しています。 Redisのバージョンは2.8.6です。 Redisの「(error) ERR max number of clients reached」というエラー対応に困っています。 コマンドライン操作で「FLUSHALL」を実行して、データを一旦クリアすることで対応しましたが、待機状態のジョブもリセットしてしまう結果となったので、ジョブのリセットを防ぐ良い解決策を知っている方がいればお教えください。 よろしくお願いします。詳細は下記にまとめました。 Redisのmaxclientsというパラメーターが上限値(65000)に達してしまった際に発生するエラーで、Sidekiqのダッシュボード画面の下部の「接続」という項目(※下図の赤枠箇所)が64999となり、Sidekiqの動作も止まってしまう。 Elasticacheのマ
Sidekiq (Redis) vs Shoryuken (AWS SQS) 14 Mar 2015 DISCLAIMER: This post is not intended to compare Sidekiq and Shoryuken implementations. Both are very similar, actually Shoryuken started as a shameless copy of Sidekiq <3 open source. The idea of this post is to compare Sidekiq as a Redis based queue system with Shoryuken as a SQS client. Resque > Sidekiq > Shoryuken Before Sidekiq, Resque was th
2015-10-14 Sidekiq has a reputation for being much faster than its competition but there’s always room for improvement. I recently rewrote its internals and made it six times faster. Here’s how! It’s been quite a while since I’ve touched Sidekiq’s core design. That was intentional: for the last year Sidekiq has stabilized and become reliable infrastructure that Ruby developers can trust when build
今更ながら最近ちゃんとredisを使い始めました。 これまでは使ったとしてもキャッシュやsession_storeにしか使っていなかったのですが、setやsorted setを使うと色々できて奥が深いですね。 railsからredisのデータを扱う際には、 redis-objectsを使うと便利でした。 redis-objectsの設定方法に関しては、Gemfileにredis-objectsを追加し、(namespaceを設定したかったのでredis-namespaceも使っています) # Gemfile gem 'redis-objects' gem 'redis-namespace'rails_configの設定にredisの接続情報を記述します。 # config/settings.yml redis: host: localhost port: 6379 object_db: 1
This document summarizes Mark Cotner's presentation on Redis and Ohm at the Atlanta Ruby Users Group on June 9, 2010. It provides an overview of Redis as a data store beyond simple key-value with additional data structures like hashes, lists, sets and more. It discusses the Redis community, common patterns used with Redis like publish/subscribe and producer/consumer, and Ruby libraries that interf
2015-09-24 Would you stuff all of your data into one database table? That’s crazy, Mike, don’t be silly! What if I told you most people do just that with Redis? Redis users often have several distinct datasets in Redis: long-lived transactional data, background job queues, ephemeral cached data, etc. At the same time I see lots of people using Redis in the most naive way possible: put everything i
AWS上で動くRailsアプリのページビューを保存する方法について書いていきます。 今回は基本的なことのみ書きますが、例えばブログのデイリーPVランキング、個別ページのPV数の推移グラフの作成などに応用出来ます。 RedisをAWSに追加 AWSには、 ElastiCache というRedisやMemcachedなどのNoSQL専用のサービスがあります。 新規Redisインスタンスの作成手順は簡単なので、他のサイトの記事を参考にしてRedisを追加してみてください。 僕は下のサイトを参考にしました Using AWS ElastiCache for Redis With AWS OpsWorks RedisをAWSに追加して、インスタンスの詳細画面に移動してください。 RailsでRedisを使う際に、画面のPortとEndpointを使用するので、Railsの環境変数に追加しておきましょ
As a follow-up of my previous post I want to explain how to get Sidekiq to work on Heroku with a Redis To Go Nano instance. Because the Nano instance has some connection limitation you have to make some config changes so you won’t get ERR max number of clients reached error messages. Why this post Today I’ve been struggling a lot with getting the Sidekiq to work probably with Redis to Go Nano on H
Railsエンジニアになってから1年半くらいが経ち、社内のRailsのプロジェクトを全部で5つくらい触って、今やってるAbilie*1でようやく人並みにテストを書いてる気がしてきたので、現時点でやってるテストの方法をまとめておく。 テストのルール的なの rspecでは必ずモデルのテストは書くようにしてる。ヘルパーも大体書いてるけど、コントローラやルーティングのテストはあまり書いてない。 というのも、コントローラーのコードを極力短くしてモデルを太らせているのでコントローラのテストはあんまり意味が無い気がしていて、その代わりにCapybaraでテストを書いておけば十分なんじゃないかなと思ってきたから。Capybaraは書いてるので、そういう意味では書いてるとも言える。 社内の管理者だけが使える管理画面も作ってるけど、そっちはテストあんまり書いてない。ここは動かなくなっても一般ユーザーには影響が
(photo credit: d_oracle via photopin cc) いままであんまりやったことなかったけど、時間のかかる処理とかを バックグラウンドでやりたいときってあるじゃないですか。 そんな非同期処理を、ResqueってGemでなかなかお手軽にやってみた話。 とはいえハマりどころも多かったし、まぁそれなりには大変っていう感じですな。。 ローカルで動かしてみる どのgemつかうか 調べてるとresqueとかdelayed_jobとかって名前をよく聞きます。 Ruby Toolboxで比べるとresqueが優勢だったのでresqueにする。 Github製らしいっていうのもポイント高し。 The Ruby Toolbox「Background Jobs」 こうやってアクティブなGemを選ぶようにするのはいい気がする。 Redisのセッティング ResqueはRedisっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く