miyasakura’s diary

日記です。

Railsで常駐プロセス(Daemon)の作り方に悩む

今作っているものがデーモンを作ってDBのテーブルを監視する必要があり、それをどう実現するのが良いのか調査中です。

候補は下記辺りでしょうか。

serverengine: rails + serverengineで お手軽daemon

foreman: foremanを使ってRailsのActive Job(Sidekiq)やその他の常駐プロセスの設定をする - Qiita

god: rails + serverengineで お手軽daemon

それともRailsとしてどうにかしようとせず、素直にLinuxの範囲でやるべきなんですかね。

あと更にAWS上でどうやって実現するのが良いのかも悩んでおります。

SQSとかLambdaとかでサーバレスで作っている部分と、Elastic Beanstalkを使ってPaaS的にサーバ管理を省いているのですが、デーモンだけは色々と管理が必要そうで嫌だなぁと。

Queueとかを使ってそもそもデーモンを必要としない設計もできなくも無いのですが、前処理からの連携となるとジョブ管理が非常に複雑になるのでバグを生みがちです。

そのため現在のステータスのみから処理を実行するほうが安全だと思ってるわけですが、とはいえそのデーモンを簡単に作る方法が。。

AWS上でこういう需要ってあんまり無いのかなぁ。

それとも基本的すぎて皆わざわざ書いてないだけなんだろうか。。