1

公式に提供されているバルクローダーオプションを使用することに成功しなかったので、独自のバルクローダースクリプト(実際には、csvからデータストアにエンティティを段階的にロードするポストハンドラー)を作成しました。

解決策は次のように機能しました:
1。csvファイルからデータをコピーします
2.アプリのフォームのテキスト領域に貼り付けます
3.フォームを投稿します
4.ハンドラーはヘッダー(列名)の受信テキストを解析します
5 。残りの行をリスト
6に格納します。リストから100行を段階的にフェッチし、行ごとにエンティティを作成して格納します(エンティティのタイプは、フォームの選択フィールドから指定されたタイプから解決されます)

現在、この手法は、最大1000行の小さな入力に対して、開発サーバーで機能します。それを超えると、次のエラーが表示されます。

トレースバック(最後の最後の呼び出し):
ファイル "/ host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / ext / webapp / init .py"、行513、呼び出し
ファイル "/ host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / myApps / ugvotes / ugvotes.py "、241行目、投稿
ファイル" / host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / ext / db / init .py "、行893、プット
ファイル" / host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / datastore.py "、行291、プット
ファイル" / host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / datastore.py "、195行目、_MakeSyncCall
ファイル"/host/_Hive/Lab/ACTIVEWORKS / UG VOTES / google_appengine / google / appengine / api / apiproxy_stub_map.py"、行499、check_success
ファイル "/ host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / apiproxy_rpc.py "、149行目、_WaitImpl
ファイル" /host/_Hive/Lab/ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / datastore_file_stub.py "、863行目、MakeSyncCall
ファイル"/host/_Hive/Lab/ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / apiproxy_stub.py"、80行目、MakeSyncCall
ファイル "/ host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google /appengine/api/datastore_file_stub.py "、行933、_Dynamic_Put
ファイル"/host/_Hive/Lab/ACTIVEWORKS / UG VOTES / google_appengine / google / appengine / api / datastore_file_stub.py"、行806、__WriteDatastore
ファイル"/ host / _Hive / Lab / ACTIVE WORKS / UG VOTES / google_appengine / google / appengine / api / datastore_file_stub.py "、836行目、__ WritePickled
IOError:[Errno 24]開いているファイルが多すぎます:'/ tmp / tmpOfgvm3'

最初は開発サーバーの制限によるエラーだと思っていましたが、本番サーバーから同じタスクを実行しようとすると、次のエラーが発生しました。

エラー:サーバーエラーサーバーでエラーが発生し、リクエストを完了できませんでした。

問題が解決しない場合は、問題を報告し、このエラーメッセージとその原因となったクエリについて説明してください。

何がうまくいかなかったのか、そして私がそれについて何ができるのか誰が知っていますか?

ありがとう。

4

1 に答える 1

0

これは既知の問題です: Python dev SDK 1.3.8 datastore_file_stub.py はファイル ハンドルをリークしているようです。
非公式のパッチが利用可能です。

于 2010-11-27T13:25:58.040 に答える