SlideShare a Scribd company logo
1 of 12
小西俊司
株式会社FLECT
 Heroku上でPlay1アプリケーションを運用中
◦ Playframework 1.2.5
◦ WebDyno複数、WorkerDyno必要時のみ起動
 まれにHerokuのDynoが自動再起動する際に以下のロ
グが出力されることがある
◦ Playのソースを見るとPlayがシャットダウンした後にHttpリ
クエストを受けた場合に発生するっぽい。
◦ 頻度は2週に1回程度でそれほど多くはない
 これはこの問題についてHerokuのサポートチームと
やりとりした詳細の記録です。
play.exceptions.UnexpectedException: Application is not started
 https://devcenter.heroku.com/articles/dynos
 Dynoは少なくとも1日に1度自動的に再起動す
る
◦ ログを監視する限り24時間前後で再起動(Cycling)が発
生している
◦ 定期的な再起動以外にアプリやプラットフォームの異常
を検出した場合にも再起動する
 再起動時にはまず対象DynoにSIGTERMが送られ
る
 SIGTERM送信後10秒間応答が無い場合はSIGKILL
が送られる
 再起動時の新しいDynoは旧Dynoシャットダウン
後に起動される
 SIGTREMを受けてPlayはshutdownHookで終了処理を行うがこ
の時にはNettyに対してはなんの処理も行われない。
 このためPlayのリクエストハンドラが終了した後でもNettyは生
きており新しいリクエストを受け付ける。 (しかし、この場合は
問答無用で503が返る)
 シャットダウン後にタイムラグがあった場合、その間にHeroku
のルーターからリクエストが来ると503が返ってしまう。
通常はAppシャットダウン後、
直ちにVMが終了するが、まれに
終了までに数秒かかる場合があ
る
 HerokuのルーターはSIGTERMを送ったDynoに対してリ
クエストを送信することがある。(エラー発生頻度からの
推測だが、常にそうなる訳ではなくControllerとのレー
ス状態によって発生することがあるということかも?)
◦ そのリクエストがソケット接続に失敗した場合は別のDynoにリ
トライされる(問題なし)
◦ 503を受け取った場合はそのままクライアントに返される(アウ
ト)
 Playframework
◦ Playはアプリのシャットダウン前にNettyのソケットをクローズす
るべき。
◦ アプリケーション開発者がonStopなどのフックからNettyを直接
参照する方法はない。
 Heroku
◦ HerokuはSIGTERMを送信したDynoに対してリクエストを送信す
るべきではない。
◦ Herokuはアプリのシャットダウン時にはまずソケットがクローズ
されることを期待している、と言えるがそれはフレームワークの
実装依存。
◦ ルータの動作はアプリケーション開発者からは制御不能な領域。
Play本体を直すことは(技術的には)可能だが、Heroku側で対
応
する方がベター。
(Play以外のフレームワークでも同じ問題があるかもしれない
し。)
しかしどの道すぐには難しそう。。。。(--
 Heroku labsで公開されているβ機能
◦ https://devcenter.heroku.com/articles/labs-preboot
 Prebootを適用するとDyno再起動時の動作が
◦ ルータ一時停止 -> 旧Dyno停止 ->新Dyno起動 -> ルータ再開
から
◦ 新Dyno起動 -> ルータスイッチ -> 旧Dyno停止
となる
これで万事解決か???
 対象となるDyno
◦ WebDynoのみ
◦ 少なくとも2台以上のWebDynoが起動していなければな
らない。
 いつ適用されるのか?
開発者が
◦ 「git push」した場合
◦ 「heroku config:set」した場合
◦ 「heroku restart」した場合
自動再起動時は適用対象外。。。(--
Prebootは1年以上前からlabs
にあるがずっとそこからでてこ
ない。
デフォルトにした場合、一時的な
インスタンス数がかなり増えそう
なのでずっとlabsのままかも。。。
 今のところ根本的な解決方法はなさそう。。。(-
-
 現行サービスの特徴
◦ ユーザーはほぼ日本人。
◦ このため日本時間の明け方頃が最もアクセストラフィッ
クが低い。
 もしもHerokuの自動再起動がかかる時間を深夜
にコントロールすることができれば、それはエ
ラーの発生率低減に繋がるはず。
◦ もともとの発生率自体がそれほど高くないがやはり可能
な限りエラーの可能性は低くしたい。
 https://github.com/gregburek/heroku-
buildpack-toolbelt
 HerokuToolbeltをDynoにインストールする
buildpack。
 これを利用することでHerokuのスケジューラから
herokuコマンドを発行できるようになる。
◦ 名前に「toolbelt」とあるがherokuコマンド以外の余計なモ
ノ(foreman, gitなど)は入っていないっぽい。
◦ ドキュメントでは「HEROKU_TOOLBELT_API_EMAIL」
「HEROKU_TOOLBELT_API_PASSWORD」の二つの環境変数
を設定とあるが、「HEROKU_API_KEY」一つだけの設定でも
OK
◦ Buildpack-multiで既存のDynoに組み込むこともできるが、
スケジューラでのDyno制御専用に新しいアプリを建てる方が
楽。
 Daily at 18:30 (3:30 JST)
◦ vendor/heroku-toolbelt/bin/heroku restart web.1 -a xxx
 Daily at 19:00 (4:00 JST)
◦ vendor/heroku-toolbelt/bin/heroku restart web.2 -a xxx
複数のWebDynoを時間をずらして再起動させる。
 Prebootの組み合わせも有効。(というか組み合わせないと元の問題解決
にはならない)
 この設定によって昼間の再起動が絶対に発生しないということではな
い。
◦ 例えばベースとなるハードウェアの障害などを検出した場合は再起動が発生す
る。
 日時の再起動が必ず24時間以上のサイクルで起きるのかどうかは要検
証。
◦ 例えば4:00 AMにrestartをスケジュールした場合に、3:55 AMに自動再起動がか
かる可能性があるのではないか。
◦ Herokuサポートからは最初は「ありえる」という回答だったが、別の人は「発生
しない」という回答だった。(質問のニュアンスがどの程度正確に伝わっているか
イマイチ自信が無いので、どこまで厳密な回答なのかが判断できなんだ。。。(--)
◦ 数日テストしているが今のところ発生したことはない。
 以下のどっちかをHeroku側で対応してほしい。
◦ SIGTERMを送ったDynoにはリクエストを送信しない
◦ Prebootを自動再起動時にも適用する
 もちろんHerokuサポートにも要望として伝えて
はいる。。。が、どの程度ニュアンスが(以下略)

More Related Content

What's hot

実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Etsuji Nakai
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ SEGADevTech
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例kazuhcurry
 
Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Yusuke Ohira
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化kazuhcurry
 
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”Ryosuke Otsuya
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanItsuki Kuroda
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡NTT Communications Technology Development
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』健太 松浦
 
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAOre Product
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
リーンスタートアップにおける良い仮説、悪い仮説
リーンスタートアップにおける良い仮説、悪い仮説リーンスタートアップにおける良い仮説、悪い仮説
リーンスタートアップにおける良い仮説、悪い仮説Takaaki Umada
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpYahoo!デベロッパーネットワーク
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsHiroki Kondo
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 

What's hot (20)

実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
 
Git入門
Git入門Git入門
Git入門
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
 
Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
 
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
リーンスタートアップにおける良い仮説、悪い仮説
リーンスタートアップにおける良い仮説、悪い仮説リーンスタートアップにおける良い仮説、悪い仮説
リーンスタートアップにおける良い仮説、悪い仮説
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 

Viewers also liked

かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -sakagami3
 
Memory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine LearningMemory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine LearningWes McKinney
 
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1Takao Oyobe
 
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編Salesforce Developers Japan
 
プロフェッショナルのための 実践 Heroku 入門
プロフェッショナルのための 実践 Heroku 入門プロフェッショナルのための 実践 Heroku 入門
プロフェッショナルのための 実践 Heroku 入門Salesforce Developers Japan
 
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方Shunji Konishi
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門Asami Abe
 
社内勉強会02 ターミナルマルチプレクサ[公開用]
社内勉強会02 ターミナルマルチプレクサ[公開用]社内勉強会02 ターミナルマルチプレクサ[公開用]
社内勉強会02 ターミナルマルチプレクサ[公開用]Keme Sato
 
How to build an environment that enables Innovation.
How to build an environment that enables Innovation.How to build an environment that enables Innovation.
How to build an environment that enables Innovation.Johanna Green
 
Cognitive Foreplay
Cognitive ForeplayCognitive Foreplay
Cognitive ForeplayPK Rasam
 
The Benefits of Social Media Listening for Advancement in Higher Education
The Benefits of Social Media Listening for Advancement in Higher Education The Benefits of Social Media Listening for Advancement in Higher Education
The Benefits of Social Media Listening for Advancement in Higher Education Lisa Kalner Williams
 
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...Mª Luz Congosto
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案Yutaka Yasuda
 
Gamification - Elements for a Gamification Learning Strategy
Gamification - Elements for a Gamification Learning StrategyGamification - Elements for a Gamification Learning Strategy
Gamification - Elements for a Gamification Learning StrategyAndrew Hughes
 
Inspirational Quotes
Inspirational QuotesInspirational Quotes
Inspirational QuotesMark Gilroy
 
Videostream compression in iOS
Videostream compression in iOSVideostream compression in iOS
Videostream compression in iOS*instinctools
 

Viewers also liked (20)

特盛!Heroku
特盛!Heroku特盛!Heroku
特盛!Heroku
 
かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -かんたんHeroku入門 - Heroku へのデプロイと運用 -
かんたんHeroku入門 - Heroku へのデプロイと運用 -
 
Memory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine LearningMemory Interoperability in Analytics and Machine Learning
Memory Interoperability in Analytics and Machine Learning
 
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
 
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編
 
プロフェッショナルのための 実践 Heroku 入門
プロフェッショナルのための 実践 Heroku 入門プロフェッショナルのための 実践 Heroku 入門
プロフェッショナルのための 実践 Heroku 入門
 
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
Math
MathMath
Math
 
社内勉強会02 ターミナルマルチプレクサ[公開用]
社内勉強会02 ターミナルマルチプレクサ[公開用]社内勉強会02 ターミナルマルチプレクサ[公開用]
社内勉強会02 ターミナルマルチプレクサ[公開用]
 
El Modelo de los Tres Tableros
El Modelo de los Tres TablerosEl Modelo de los Tres Tableros
El Modelo de los Tres Tableros
 
How to build an environment that enables Innovation.
How to build an environment that enables Innovation.How to build an environment that enables Innovation.
How to build an environment that enables Innovation.
 
Cognitive Foreplay
Cognitive ForeplayCognitive Foreplay
Cognitive Foreplay
 
The Benefits of Social Media Listening for Advancement in Higher Education
The Benefits of Social Media Listening for Advancement in Higher Education The Benefits of Social Media Listening for Advancement in Higher Education
The Benefits of Social Media Listening for Advancement in Higher Education
 
A history of programming
A history of programmingA history of programming
A history of programming
 
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...
Twitter, una sonda permanente de opinión y una vía para canalizar acciones ci...
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案
 
Gamification - Elements for a Gamification Learning Strategy
Gamification - Elements for a Gamification Learning StrategyGamification - Elements for a Gamification Learning Strategy
Gamification - Elements for a Gamification Learning Strategy
 
Inspirational Quotes
Inspirational QuotesInspirational Quotes
Inspirational Quotes
 
Videostream compression in iOS
Videostream compression in iOSVideostream compression in iOS
Videostream compression in iOS
 

More from Shunji Konishi

Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話Shunji Konishi
 
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門Salesforce連携のためのOData入門
Salesforce連携のためのOData入門Shunji Konishi
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするShunji Konishi
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるShunji Konishi
 
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテストMochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテストShunji Konishi
 
SendGridサンプルの紹介
SendGridサンプルの紹介SendGridサンプルの紹介
SendGridサンプルの紹介Shunji Konishi
 
セキュリティの考え方
セキュリティの考え方セキュリティの考え方
セキュリティの考え方Shunji Konishi
 
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみたWebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみたShunji Konishi
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
Playframework1でSeleniumテスト
Playframework1でSeleniumテストPlayframework1でSeleniumテスト
Playframework1でSeleniumテストShunji Konishi
 
Dyno cycling behavior of Heroku
Dyno cycling behavior of HerokuDyno cycling behavior of Heroku
Dyno cycling behavior of HerokuShunji Konishi
 
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツールHerokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツールShunji Konishi
 
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方Shunji Konishi
 
Herokuのログ解析ツール
Herokuのログ解析ツールHerokuのログ解析ツール
Herokuのログ解析ツールShunji Konishi
 
文字コードのお話
文字コードのお話文字コードのお話
文字コードのお話Shunji Konishi
 
High traffic questionnaire site
High traffic questionnaire siteHigh traffic questionnaire site
High traffic questionnaire siteShunji Konishi
 

More from Shunji Konishi (19)

Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
 
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
 
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテストMochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテスト
 
SendGridサンプルの紹介
SendGridサンプルの紹介SendGridサンプルの紹介
SendGridサンプルの紹介
 
セキュリティの考え方
セキュリティの考え方セキュリティの考え方
セキュリティの考え方
 
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみたWebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
Heroku tips1
Heroku tips1Heroku tips1
Heroku tips1
 
Playframework1でSeleniumテスト
Playframework1でSeleniumテストPlayframework1でSeleniumテスト
Playframework1でSeleniumテスト
 
Dyno cycling behavior of Heroku
Dyno cycling behavior of HerokuDyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
 
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツールHerokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
 
Play1 to Play2
Play1 to Play2Play1 to Play2
Play1 to Play2
 
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
 
Herokuのログ解析ツール
Herokuのログ解析ツールHerokuのログ解析ツール
Herokuのログ解析ツール
 
Excel2 canvas
Excel2 canvasExcel2 canvas
Excel2 canvas
 
文字コードのお話
文字コードのお話文字コードのお話
文字コードのお話
 
High traffic questionnaire site
High traffic questionnaire siteHigh traffic questionnaire site
High traffic questionnaire site
 

Heroku Dyno再起動時の振る舞い