chinachuの録画ファイルを、録画後に移動する枠組み

Linux上の録画システム「chinachu」で、録画終了したファイルを、移動したり、他のホストに転送したりする枠組みを考えます。

今の状況

とりあえず動作するまで開発したので、GitHubに上げました。

https://github.com/taikoyaP/tsfuriwake

開発前

chinachuのrecorded-scriptの仕組みからperlスクリプトを呼び出し、そこで他のホストに転送していました。

その時の問題点

  • 複数の録画が同時に終了すると、複数のファイルが一度に転送されてしまい、負荷とかが心配になる。一応、ioniceとかniceで優先度は下げてるけど、不安。

要求定義

  • 録画が終了したファイルを、別のディレクトリに移動したり、別のホストに転送したりしたい。
  • 同時に1つのファイルのみを処理するようにしたい
  • 移動するためのルールは、別ファイルに設定し、随時書き換えられるようにしたい。
  • 設定ファイルは、json形式で書きたい。

基本設計

  • サーバプロセスを起動し、このプロセスが移動を実行する。
  • サーバプロセスは、クライアントからファイル名を受信し、ファイル名からどこに移動や転送をするかを判断し、実行する。
  • サーバプロセスは、同時に1つだけファイルを移動する。
  • プロセス間通信には、UNIXドメインソケット(STREAM)を使用する。
  • サーバプロセスは、クライアントプロセスから特定のコマンドを受け取ると、設定ファイルを再読み込みする。
  • クライアントプロセスは、recorded-scriptから起動される。
  • クライアントプロセスは、サーバプロセスにファイル名を送信する。