SlideShare a Scribd company logo
1 of 20
Download to read offline
Shinjuku.rb #29 LT?
タケユー・ウェブ 竹内雄一
Shinjuku.rb #29 LT?
• 竹内 雄一@大宮
• フリーランス WEBエンジニア
(受託メイン 設計~運用)
• Ruby on Rails 1.1ぐらいから
• そのほかCMS AWS 鯖管 など
• むかしつくったもの
• rack-ketai … jpmobileがrack対応してなかった時のやつ
• KetaiPost … Movable Typeでメール投稿するやつ
お世話になった本たち@takeyuweb
使ったことがある
gemの話をします
使ったことがあるDaemon関係gem
• activejob
• actioncable
• aws-flow
• serverengine
• god
• backgroundrb
• sidekiq
• resque
• delayed_job
• sucker_punch
いろいろありました。
ActiveJob
• 「Active Jobは、ジョブを宣言し、それによってバックエンドでさまざま
な方法によるキュー操作を実行するためのフレームワークです。」
使ったことある人挙手
みんなあるよね?あったらこの話いみないね
What’s ActiveJob ?
• Rails標準のキューイング仕様(4.2~)
• 時間のかかる処理を裏でやるやつ
• これまでいろんなgemがありそれぞれのやり方を覚える必要があった
• BackgrounDRb / Resque / Delayed Job / Sidekiq / Sucker Punch etc…
• 標準があることで書き方を統一できて嬉しい
ActiveJobはアダプタ
• ActiveJob自体にジョブを記憶したり処理する機能はない
• 他のキューイングシステムとRailsをつなぐ
• キューイングシステムがなんであっても同じように書ける
# ジョブの作成
class MailMagazineDeliveryJob < ActiveJob::Base
queue_as :default
def perform(post)
# 後で実行したい処理をここに書く
end
end
# ジョブを登録したいとき
MailMagazineDeliveryJob.perform_later(post)
ActiveJobのバックエンドシステム
• 実際のジョブキューへの出し入れは他のを使う
• ジョブキューのデータストアもそれぞれなので、用途や目的に応じて使う
• (インラインライナー)
• バックエンドを指定しないとき。その場ですぐ実行しちゃう。見せかけだけ。
• Sidekiq
• データストアとしてRedisが必要
• Sucker Punch
• データストア不要
• その他ResqueやDelayedJobなど昔からあるキューイングシステムをバック
エンドとして利用できる!
ActiveJobのバックエンドプロセス
• 一部の例外を除き、バックグラウンド処理用のdaemonプロセス必要
• 例外
• インラインライナー
• 見せかけだけなので。
• Sucker Punch
• 他のデータストアやバックグラウンドプロセスなしに、アプリケーションのプロセスだけで、非
同期処理ができちゃうのがウリ。
• バックグラウンドとしてSidekiqを選択したなら
• sedis-server
• sidekiq -C config/sidekiq.yml
こないだの案件の場合
• AWS
• Redisの管理をしたくない
• ワーカーを動かすインスタンスのスケールアウトを可能に
• Amazon Simple Queue Service (SQS)
• ジョブキューの出し入れ、排他制御
• 追記 ジョブ完了後メッセージを削除しないと、
可視性タイムアウト終了後再度落ちてくる
• ジョブキュー専用に設計されてて使いやすく堅牢
• Amazon Lambdaなどとの連携も
• フルマネージド
• スケールアウトが容易
ActiveJobとAmazon SQSをつなぐ
ActiveJobとAmazon SQSをつなぐ
• aws sdkを使ってアダプタを自作した
• Active Job meets Amazon SQS
http://takeyuweb.hatenablog.com/entry/2014/12/11/043515
• ジョブをSQSから取り出してActiveJobのジョブを実行するスクリプトを
書く
• job_data = JSON.parse(message[:body])
ActiveJob::Base.execute(job_data)
• ただのスクリプトなので、このままでは落ちたら終わり
• 永続(サービス)化が必要
※今ならshoryukenというSQSを利用したgemがあるのでそれを使えば多分楽(永続化もある)
スクリプトのサービス化
• プロセス管理ツール
• while(true)な感じのスクリプトをサービス化するためのツール(ざっくり
• ロギング、死活監視(落ちてたら起動し直すとか)
• 設定ファイルに起動したいスクリプトや環境変数などを設定して、管理ツールのプロセスを起動すると
後は勝手にやってくれる
• daemontools
• 古典
• Supervisord
• 設定ファイルが割と簡単、yumとかでも入る
• God
• 設定ファイルがruby
• プロセスのメモリ使用量が一定以上になったら再起動とか、プログラマブルで高度な機能あり
• ググラビリティ低い
• Foreman
• Herokuで使うやつ
永続化させたいスクリプトについて
• フォアグラウンドで動くもの(をGodの裏で動かすことになる)
• while(true)なやつ
• 色々自前でやる
• Signal.trap(:TERM)とか
• プロセスの実行ログの書き出しやログローテーションとか
• ServerEngine
• 「Unicornのような強固なマルチプロセスサーバーを実装するためのフレーム
ワーク」
• ロギング、プロセス管理、ワーカープロセスの並列化 …
• うちは複数のスクリプトをそれぞれ永続化したかったので
• フォアグラウンドで動くただのスクリプトにし、別のでプロセス管理
• シグナルの処理やロギングだけ使いたい
ServerEngineでGodで管理するスクリプトを
• プロセス管理はGod(またはSupervisorなど)でやるので要らない
• マルチプロセスは今のところ使ってない(必要になれば考える
• フォアグラウンドで動かしたい
• ロギングはしたい
se = ServerEngine.create(
nil,
ActivejobWorker, # SQSからデータを取り出してActiveJobジョブを実行するやつ
{
daemonize: false, # フォアグラウンドで動かす(trueだとバックグラウンドに)
supervisor: false, # プロセス管理機能はなし
log: Rails.root.join(‘log/activejob_worker_server.log’), # 実行ログの書き出し先
log_rotate_age: 5, # 5世代分保持
log_rotate_size: 1*1024*1024 # 1MBごとにローテート
})
se.run
Godの設定
# config/god.rb
ROOT_DIR = ENV['RAILS_ROOT'] || File.expand_path(File.join(File.dirname(__FILE__), '..'))
God.pid_file_directory = File.expand_path(File.join(ROOT_DIR, 'tmp/pids')) + '/'
God.watch do |w|
w.name = 'activejob_worker_server'
w.dir = ROOT_DIR
w.uid = 'deploy'
w.env = ENV.to_h
# 実行するServerEngineなスクリプト
w.start = "bundle exec ruby bin/activejob_worker_server“
# STOPコマンド後待機する秒数 これを超えたら強制終了
w.stop_timeout = 60.seconds
# その他メモリ管理とかいろいろ
end
デプロイ
• AWS OpsWorks
• カスタムCookbookを書く
• LayerをみてWorker用のやつなら以下
• godなどインストール
• デプロイ後の god terminate & god -c ..
まとめ
• ActiveJob使った
• バックエンドにAmazon SQSを使った
• ジョブ実行スクリプトにはServerEngine(の一部機能)を使った
• プロセス管理にはGodを使った
おまけ
• Rails5に搭載される?されない?
ActionCableでも通常のRailsアプリとは別にWebSocket用のプロセス
を起動する必要がありました。
• Qiitaに記事書いた
Action Cable + Flux + React でリアルタイムチャットデモを作ってみた
http://qiita.com/takeyuweb/items/0c421534e5ad1d2657f7

More Related Content

What's hot

Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetesYasutomo Uemori
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでAsami Abe
 
Next GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリースNext GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリースよしだ あつし
 
Our Track to Modern Angular
Our Track to Modern AngularOur Track to Modern Angular
Our Track to Modern AngularYuta Shimizu
 
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌Takehito Tanabe
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Cake YOSHIDA
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについてブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic BeanstalkについてTakehito Tanabe
 
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象Tatsuya Tobioka
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1Takehito Tanabe
 
サーバを運用する時代は終わった
サーバを運用する時代は終わったサーバを運用する時代は終わった
サーバを運用する時代は終わったYuki Ishikawa
 
素人のための機械学習
素人のための機械学習素人のための機械学習
素人のための機械学習Takeuchi Yuichi
 
サーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみたサーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみたryutakatori
 
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話Cake YOSHIDA
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎schoowebcampus
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)Takehito Tanabe
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Asami Abe
 
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀Seiji Akatsuka
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609龍一 田中
 

What's hot (20)

Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetes
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったで
 
Next GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリースNext GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリース
 
Our Track to Modern Angular
Our Track to Modern AngularOur Track to Modern Angular
Our Track to Modern Angular
 
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについてブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
 
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.1
 
サーバを運用する時代は終わった
サーバを運用する時代は終わったサーバを運用する時代は終わった
サーバを運用する時代は終わった
 
素人のための機械学習
素人のための機械学習素人のための機械学習
素人のための機械学習
 
サーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみたサーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみた
 
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
 
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
 
Kyakusaki.rb
Kyakusaki.rbKyakusaki.rb
Kyakusaki.rb
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609
 

Viewers also liked

AWS Auroraよもやま話
AWS Auroraよもやま話AWS Auroraよもやま話
AWS Auroraよもやま話Akira Miki
 
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいRubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいSanae Yamashita
 
rails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemonrails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemonAkira Miki
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewPradeep Elankumaran
 
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話Muneaki Nishimura
 
Real-time Chat Backend on AWS IoT 20160422
Real-time Chat Backend on AWS IoT 20160422Real-time Chat Backend on AWS IoT 20160422
Real-time Chat Backend on AWS IoT 20160422akitsukada
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
AWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAmazon Web Services Japan
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesEberhard Wolff
 
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014Amazon Web Services
 
PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減PIXTA Inc.
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 

Viewers also liked (12)

AWS Auroraよもやま話
AWS Auroraよもやま話AWS Auroraよもやま話
AWS Auroraよもやま話
 
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいRubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
 
rails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemonrails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemon
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
 
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話
 
Real-time Chat Backend on AWS IoT 20160422
Real-time Chat Backend on AWS IoT 20160422Real-time Chat Backend on AWS IoT 20160422
Real-time Chat Backend on AWS IoT 20160422
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
AWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoT
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For Microservices
 
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014
(SDD411) Amazon CloudSearch Deep Dive and Best Practices | AWS re:Invent 2014
 
PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 

Similar to Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
inside 2012新卒説明会
inside 2012新卒説明会inside 2012新卒説明会
inside 2012新卒説明会Taiyoh Tanaka
 
Happy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on RailsHappy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on RailsKoichiro Ohba
 
使ってみたAssets系gemの紹介
使ってみたAssets系gemの紹介使ってみたAssets系gemの紹介
使ってみたAssets系gemの紹介Takeuchi Yuichi
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編Kazuya Numata
 
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするRubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするnomlab
 
Reudy on Ruby1.9
Reudy on Ruby1.9Reudy on Ruby1.9
Reudy on Ruby1.9Glass_saga
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmchuck h
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
超高速アプリ開発法
超高速アプリ開発法超高速アプリ開発法
超高速アプリ開発法Keiichi SASAKI
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Takuya Mukohira
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情Kazuhiro Serizawa
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作Yuki Yazaki
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方Shuyo Nakatani
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 

Similar to Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話 (20)

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
inside 2012新卒説明会
inside 2012新卒説明会inside 2012新卒説明会
inside 2012新卒説明会
 
Happy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on RailsHappy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on Rails
 
使ってみたAssets系gemの紹介
使ってみたAssets系gemの紹介使ってみたAssets系gemの紹介
使ってみたAssets系gemの紹介
 
Rubyの話を少し
Rubyの話を少しRubyの話を少し
Rubyの話を少し
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするRubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にする
 
Yapc2012ltthon
Yapc2012ltthonYapc2012ltthon
Yapc2012ltthon
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
Reudy on Ruby1.9
Reudy on Ruby1.9Reudy on Ruby1.9
Reudy on Ruby1.9
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
超高速アプリ開発法
超高速アプリ開発法超高速アプリ開発法
超高速アプリ開発法
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 

Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話