0

私のクライアントは、商品を扱う e コマース システムを持っています (約 60,000 の商品項目があります)。価格表は、URL アドレスに ZIP 形式で配置されます。

最初に価格表をダウンロードして解凍し、CSV ファイルを開いて 1 行ずつ読み始める必要があります。彼のデータベースでは、CSV から更新された価格です (製品の価格が CSV と彼のデータベースで異なる場合は、CSV からの価格を使用してデータベースを更新します)。

しかし、Herokuでこれを行うことは可能ですか? 約 40MB のファイルのダウンロードにはしばらく時間がかかり、CSV からデータベースへのデータのインポートにも時間がかかります (localhost でのインポートには約 17 分かかりますが、これは CSV 全体のデータベースへのインポートです)。

この状況をどのように解決しますか?どのようなオプションがありますか? 残念ながら、CSV ファイルを変更する方法がないため、そのファイルで作業する必要があります...

ありがとう

4

2 に答える 2

2

heroku のファイル システムについてよくある誤解があります。読み取り専用であるということではなく、一時的であるということです。プロセスを開始してファイルシステムへの書き込みを開始できますが、そのプロセスが終了するとすぐに、データは永久に失われます。

したがって、確かに zip ファイルをダウンロードして処理することはできますが、処理中にエラーが発生してプログラムが終了した場合でも、解凍されたデータは失われます。それを解凍し、データのチャンクを作成して S3 に配置し、そのデータを任意の数のワーカーでクランチして独自のデータベースに内部化することを検討することをお勧めします。

于 2012-08-06T15:37:34.220 に答える
1

これは、ワーカー プロセスの遅延ジョブで作業を実行することで可能になります。詳細については、https ://devcenter.heroku.com/articles/ps を参照してください。これがスケジュールされた時間間隔で実行したい定期的なタスクである場合は、スケジューラ ( https://devcenter.heroku.com/articles/scheduler ) も使用できることに注意してください。

于 2012-08-05T20:47:04.873 に答える