Heroku にデプロイした Sinatra アプリがあります。ユーザーがフォームを送信し、いくつかのファイルを一時フォルダーに書き込み、書き込まれたばかりのファイルを消費する必要があるシェル コマンドを実行する Web ページがあります。
問題は、シェルを実行すると、実行されたコマンドが一時フォルダーに書き込まれたファイルにアクセスできないことです。シェル コマンドは別のファイルを一時フォルダーに書き込むことになっていますが、シェル コマンドの実行が終了した後、そのファイルは Ruby コードからは見えません。
Web インスタンスは 1 つの dyno で実行されていると思いますが、シェル コマンドは別の dyno で実行されます。HTTP 要求/応答が実行されているのと同じ dyno でシェル コマンドを強制的に実行する方法はありますか?
編集:さらにデバッグを行ったところ、両方が同じdynoで実行されているようです(ENV['DYNO']
と同じ[backtick]echo $DYNO[backtick]
です)。