タグ

ブックマーク / www.walbrix.com (2)

  • cronジョブの多重起動を MySQLの汎用ロック機能で回避する - ブログ - ワルブリックス株式会社

    MySQLのロック機能を使って楽に cronジョブの多重実行回避をしようという話 たかがロック、されどロック システムで非同期にキューの処理などを行う場合、cronを使って短い間隔でバッチジョブを起動してキューを処理するという方法がよく取られるが、キューの混み具合によってはバッチジョブにかかる時間が長くなってしまうため、前に実行されたジョブがまだ走っているかどうかチェックして、もし走っている場合は処理を実行せずにそのまま終了するといった制御が必要になる。 たまにこの制御をしていないバッチジョブが溜まりに溜まってシステムをハングさせているのを見かける。 適当な空のファイルを作成してこれを flockするとか、システムコールレベルでアトミックに作成できることになっているオブジェクト(シンボリックリンクなど)を駆使してロックの代わりにするとかといったテクニックが典型的に利用されるが、これらを真面

    cronジョブの多重起動を MySQLの汎用ロック機能で回避する - ブログ - ワルブリックス株式会社
    yass
    yass 2014/12/18
    " データベースのロック機能というとテーブルや行といったエンティティに対するロックを想像しがちだが、実は MySQLにはそれらと関係なく適当な名前でロックを行う get_lock/release_lock という汎用のロック機能があるのだ。"
  • 余談 - 傭兵は冷徹な稼業ときたもんだ。なぜ今またJavaなのか - ブログ - ワルブリックス株式会社

    ≪ 前の記事warファイルを Tomcat上で動作させる 次の記事 ≫JSON APIPHPから呼び出して結果を表示する 当のことを言うと、顧客はあなたがどんな技術を使ってそれを実装するかに興味などない 顧客に「サーバは弊社ホームページのものが既にあるので、そこで動くシステムを作って下さい」と言われたら大抵そのサーバは(Windowsでなければ) CentOSである。比較的お金をお持ちなお客様であれば RedHatの時もあるが、同じことだ。 ※もしDebianを使っているとしたらそれは訓練されたお客様なので別の対応を要する CentOSのクローン元である RedHat Enterprise Linuxはきわめて保守的な Linuxディストリビューションで、やみくもに機能を追加せず互換性を維持することに多大な注意が払われている。よって OSが標準で提供しているソフトウェアパッケージの種

    余談 - 傭兵は冷徹な稼業ときたもんだ。なぜ今またJavaなのか - ブログ - ワルブリックス株式会社
  • 1