質問: Rails5.1.3でWebアプリケーション制作の勉強をしています。 バッチ処理についての質問です。 cronでバッチ処理でデータを更新するファイルを作っていますがバッチ処理中にユーザーがアクセスした場合にどうなるのか 不安なので教えていただけないでしょうか? 1つはバッチ処理処理中にユーザーがデータにアクセスした場合、「アクセスできません」のような表示になるのか それとも更新前のデータが表示されるのかです。 2つ目はバッチ処理中は「処理前のデータをユーザー側に送る。」みたいなコードがあるのか? です。 考え過ぎで、特に気にすることは無いというのであればベストなのですが どなたか教えていただけないでしょうか?宜しくお願いします。
回答: 普通にcronを組んで処理を行う場合、Railsのリクエストを捌くプロセスとは別プロセスでの実行となりますので、cron中でもWeb経由のリクエストは問題なく受け付けます。 ただ、どの時点でのデータが表示されるかについては、cron処理の進み具合と、リクエストのタイミング次第です。最悪、同じデータについてフロントエンドからの更新とcronでの更新が干渉した場合などは、デッドロックすることも考えられます。