下記のGoogle Apps Scriptコードを使用しています。スクリプトはエラーなしで実行されました。しかし、私はいくつかのエントリが見つからないことを発見しました。データはクリーンアップされているため、制御文字を持つエントリはありません。 putAllメソッドによって設定されたCacheオブジェクトのサイズ制限はありますか。私は個々のputメソッドを実行すれば正常に動作します。しかし、それはあまりにも長くかかる。 putAllを使うのは1〜2分しかかかりません。私はこの問題を理解するために何日も過ごしました。私は100%肯定的です。データに何も問題はありません。 THANKSGoogle Appsサービス - キャッシュサービスの不足のエントリ
//my data file looks like below with 180K entries.
//Each line is terminated with \n
//{
// "0000000001": "Seattle",
// "0000000002": "Portland",
// "0000000006": "Tukwila",
// "0000000008": "Kirkland",
// ....
// }
var jsonString = DriveApp.getFileById("xxxxxx....xxx").getAs(MimeType.PLAIN_TEXT).getDataAsString();
var jsonObject = eval("(" + jsonString +")");
vendorCache.putAll(jsonObject, 21600); // 21600 cache it for 6 hours
キャッシュに入れられない場合がありますか?彼らはいつも同じものですか?ちょうどそれらを入れようとするとどうなりますか? –
以下は、私が気づいた1つのレコードです。一貫してputAll: "0000000170": "E Canada Dry DO NOT USE"、putメソッドの問題はありません。ファイルの101番目のレコードです。私が行数を172560件に減らした場合、私はその記録を見る。しかし、私がファイル全体を行うと、178Kかそれでは101番目のレコードが消えます。ファイル全体をロードする際にエラーは発生しません。 –
私はより多くのテストを行い、キャッシュが失われ始めた時点までファイルを取得しました。私は最後の入力テキストcharをcharで切り捨てました。ファイルサイズは6149564バイトです。それは約6MBです。そのため、putAllメソッドのハードコーディングされた制限がある必要があります。私はキャッシュのサイズの制限とは思わない。誰かがputAllメソッドでコードを見てみることができますか?ありがとう –