ここでの問題は、インポート方法が堅牢ではないことです。
プッシュを受信すると、Heroku は dyno を強制終了します。Heroku は、dyno が大量のメモリを使用している場合、長期間稼働している場合、負荷を再調整している場合、またはそのグループ内のプロセス数をスケーリングしている場合にも、dyno を強制終了する可能性があります。さらに、その EC2 インスタンスは、電力、ネットワーク、ストレージ、人的障害など、さまざまな理由で起動したり停止したりする可能性があります。
インポートが常に成功することが重要な場合は、アプリケーションを適切にビルドする必要があります。アップロードを受信した dyno が強制終了された場合に備えて、インポートするデータを一時的に S3 に置きます。「これはインポートする必要がある」という記録をデータベースに入れます。インポートするときは、トランザクションごとにインポートして、インポートが完全に成功するか完全に失敗するようにします。
それは大変な作業ですか?ツールの選択に応じて、そうでない場合もあります。(通常、 Sidekiqを使用すると、これを簡単に行うことができます。)ただし、これが唯一の現実的なオプションです。
従来の考え方は、インフラストラクチャに障害が発生しないようにすることでした。その結果、多重冗長ファイバー チャネル アップリンクを備えた SAN が多重冗長スイッチに接続され、多重冗長ストレージ アレイに接続されました。これにより、CPU のホットスワップ、RAM の RAID、およびその他の Enterprise Features™ が実現しました。しかし、それをすべて行ったとしても、インフラストラクチャは依然として機能しません。
新しい考え方は、失敗は避けられないことを認識しています。派手なことはすべて忘れてください。市販のハードウェアを大量に購入し、障害に耐えられるようにアプリケーションを構築してください。それが EC2 モデルで、それが Heroku モデルです。それに応じて設計します。