タグ

2016年11月22日のブックマーク (2件)

  • Ubuntu/Pythonの非同期シグナルセーフ関数のお話 - 西村の駄文集積所

    最初に書いてしまうと、 ubuntuのsleep()は非同期シグナルセーフ関数で、実行中にシグナルを受信すると、ただちにシグナルハンドラへ処理が移り、シグナルハンドラが完了したあとで、指定秒数が経過していなくても、再開することなくただちに完了する。 ubuntuのread()とwrite()は非同期シグナル関数で、実行中にシグナルを受信すると、実行が完了してからシグナルハンドラへ処理が移り、シグナルハンドラが完了したあとは、read/writeの完了後から処理が再開する。つまりI/Oはシグナルを受信しなかったときと同じように実行される。 みたいだった。 非同期シグナルセーフ関数は他にもたくさんあるけど、今回はこれだけ。 pythonのsignalモジュールとmultiprocessingモジュールを試してるとき、どうも引っかかった。 子プロセスがtime.sleep(100)を実行して、t

    Ubuntu/Pythonの非同期シグナルセーフ関数のお話 - 西村の駄文集積所
  • OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO

    私の所属するプロジェクトで、OSSのジョブ管理ツールKuroko2を導入しました。 簡単にKuroko2の特徴、設定手順をご紹介します。 導入の経緯 プロジェクトが始まった時、一定間隔で起動する小さなジョブが一つか二つあるだけなのでcronで動かしていました。 ですが、リリースから時間が経ちサービスが成長するにつれ次第にジョブも増えていきました。 「こっちのDBから1日1回データを同期して画面に反映して欲しいです!」 「FTP接続してこっちのファイル取得してほしいんだけど...」 「対象のデータがあったらS3にJSON書き出してくれない?」 その場しのぎで次々にcron起動のジョブを増やしていったところ、ある日 崩壊した... (青:使用可能メモリ、緑:使用済みメモリ) ジョブ管理システム Kuroko2の導入 自前でジョブ管理システムを構築することも検討しましたが、時間がないことやすでに

    OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO