Submit Search
Upload
delayed_jobの自動再起動
•
Download as PPT, PDF
•
0 likes
•
2,691 views
F
firewood
Follow
delayed_jobをmontで監視する
Read less
Read more
Software
Report
Share
Report
Share
1 of 13
Download now
Recommended
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
Shunsuke Kikuchi
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
Masahito Zembutsu
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
京大 マイコンクラブ
疑似乱数
疑似乱数
m4_ms1
Recommended
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
Shunsuke Kikuchi
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
Masahito Zembutsu
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
京大 マイコンクラブ
疑似乱数
疑似乱数
m4_ms1
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸
xztaityozx
runC概要と使い方
runC概要と使い方
Yuji Oshima
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
LINE Corporation
命名規則のススメ
命名規則のススメ
natrium11321
DNS移転失敗体験談
DNS移転失敗体験談
oheso tori
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
Paxos
Paxos
Preferred Networks
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
keitasudo1
Unicode文字列処理
Unicode文字列処理
信之 岩永
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
【ICLR2023】論文紹介: Image as Set of Points
【ICLR2023】論文紹介: Image as Set of Points
Shoki Miyagawa
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
Deep Learning JP
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
shimadah
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)
Hiroki Mizuno
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
20121205 jjbug
20121205 jjbug
Tohru Kobayashi
More Related Content
What's hot
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸
xztaityozx
runC概要と使い方
runC概要と使い方
Yuji Oshima
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
LINE Corporation
命名規則のススメ
命名規則のススメ
natrium11321
DNS移転失敗体験談
DNS移転失敗体験談
oheso tori
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
Paxos
Paxos
Preferred Networks
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
keitasudo1
Unicode文字列処理
Unicode文字列処理
信之 岩永
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
【ICLR2023】論文紹介: Image as Set of Points
【ICLR2023】論文紹介: Image as Set of Points
Shoki Miyagawa
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
Deep Learning JP
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
shimadah
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)
Hiroki Mizuno
What's hot
(20)
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
LLVM最適化のこつ
LLVM最適化のこつ
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸
runC概要と使い方
runC概要と使い方
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
命名規則のススメ
命名規則のススメ
DNS移転失敗体験談
DNS移転失敗体験談
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Paxos
Paxos
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
Unicode文字列処理
Unicode文字列処理
Node-v0.12の新機能について
Node-v0.12の新機能について
【ICLR2023】論文紹介: Image as Set of Points
【ICLR2023】論文紹介: Image as Set of Points
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)
Similar to delayed_jobの自動再起動
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
20121205 jjbug
20121205 jjbug
Tohru Kobayashi
FAV001_はじめよう自己監視
FAV001_はじめよう自己監視
Hiroki.lzh
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
Atsuki Yokota
ビットキーのIoT基盤におけるAWS IoT Rule Action 活用
ビットキーのIoT基盤におけるAWS IoT Rule Action 活用
Ryo Sasaki
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
Ryo Sasaki
第8回 福岡西区勉強会
第8回 福岡西区勉強会
Shinya Kinoshita
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
Akihiro Kuwano
JobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
Uchio Kondo
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
バージョン管理
バージョン管理
Misa Kondo
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストール
Kiyoshi SATOH
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
Yukihiko SAWANOBORI
恋するJenkins
恋するJenkins
Hiroshi Nakao
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介
Hinemos
Similar to delayed_jobの自動再起動
(20)
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
20121205 jjbug
20121205 jjbug
FAV001_はじめよう自己監視
FAV001_はじめよう自己監視
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
ビットキーのIoT基盤におけるAWS IoT Rule Action 活用
ビットキーのIoT基盤におけるAWS IoT Rule Action 活用
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
第8回 福岡西区勉強会
第8回 福岡西区勉強会
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
JobScheduler Code Reading
JobScheduler Code Reading
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
バージョン管理
バージョン管理
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストール
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
恋するJenkins
恋するJenkins
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介
More from firewood
Best Bugs 2017 in the SmartNews iOS app
Best Bugs 2017 in the SmartNews iOS app
firewood
Xcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみた
firewood
Xcodeで値を表示する
Xcodeで値を表示する
firewood
SmartNewsアプリの品質
SmartNewsアプリの品質
firewood
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
フィルタドライバ入門
フィルタドライバ入門
firewood
三日で書くGroonga関数
三日で書くGroonga関数
firewood
L-R
L-R
firewood
FPGA
FPGA
firewood
More from firewood
(10)
Best Bugs 2017 in the SmartNews iOS app
Best Bugs 2017 in the SmartNews iOS app
Xcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみた
Xcodeで値を表示する
Xcodeで値を表示する
SmartNewsアプリの品質
SmartNewsアプリの品質
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
C++でHello worldを書いてみた
C++でHello worldを書いてみた
フィルタドライバ入門
フィルタドライバ入門
三日で書くGroonga関数
三日で書くGroonga関数
L-R
L-R
FPGA
FPGA
delayed_jobの自動再起動
1.
delayed_job の自動再起動 Shinjuku.rb #29 firewood@github
2.
対象サイト https://competitiveprogramming.info/ Rails
4.0 コンテスト情報の更新の際に delayed_job を使用
3.
背景 delayed_job のイメージ
( 偏見 ) redis 等が不要なので手軽 たまにゾンビプロセス化する
4.
要求 落ちること自体は仕方ない ただし、正常に動いてないなら自動的 に再起動してほしい
5.
信頼する・しない monit (
デーモンの監視 ) とりあえず信頼する delayed_job 完了したタスクについては信頼する 常に生きてるとは思わないことにする
6.
monit https://mmonit.com/monit/ 様々な種類のリソースが監視できる
process ID(PID) 、ポート、 CPU 負荷など
7.
何を監視するか決める プロセスは存在しているが仕事をして いなかったり、ポートは開いているが サービスを提供していなかったりする 実際の仕事を監視したほうがいい
一箇所だけならアプリケーションレベルで 監視する
8.
基本方針 cron で
delayed_job にタスクを積む ファイルの日付を更新するだけの touch と いうタスク タスクが実行されなかったら monit 経 由で再起動させる
9.
crontab -l 0,30 *
* * * /bin/bash -lc 'cd /data/compinfo/current && ./bin/rake hoge:touch‘ 30 分に一度タスクを積む
10.
/etc/monit.d/delayed_job check file delayed_job
with path /data/compinfo/shared/tmp/pids/alive if timestamp > 60 minutes then restart start program = “/bin/su - user –c 'cd /data/compinfo/current; bin/delayed_job start; bin/rake hoge:touch'“ stop program = "/bin/su - user –c 'cd /data/compinfo/current; bin/delayed_job stop'“ 60 分更新がなければ、 delayed_job を再起動させてタスクを積む
11.
lib/tasks/hoge.rake namespace :hoge do task
:touch => :environment do Hoge.delay.touch end end Hoge.touch をタスクに積 む
12.
touch class Hoge <
ActiveRecord::Base def self.touch FileUtils.touch Rails.root.join('tmp/pids/alive') end end ファイルのタイムスタンプを更新す る
13.
課題 再起動するまでが長い → プロセスが落ちている場合にも再起動す る
monit の default の監視間隔が 1 分なの で、復帰直後に重いタスクがあると再 起動してしまう → すべてのタスクの先頭で Hoge.touch を呼 ぶようにする
Download now