質問編集履歴

4

追記

2021/01/15 13:51

投稿

kingston02
kingston02

スコア0

test CHANGED
File without changes
test CHANGED
@@ -126,4 +126,16 @@
126
126
 
127
127
 
128
128
 
129
- ```
129
+ ---
130
+
131
+
132
+
133
+ 2021/01/15 22:49追記
134
+
135
+
136
+
137
+ 根本的な解決にはなっていませんが、処理の高速化を兼ね、シート書き込み回数を減らすことで回避することにしました。
138
+
139
+
140
+
141
+ コメントをくださった方がいるので、しばらく回答オープンにしておきます。

3

追記

2021/01/15 13:51

投稿

kingston02
kingston02

スコア0

test CHANGED
File without changes
test CHANGED
@@ -37,3 +37,93 @@
37
37
 
38
38
 
39
39
  提案・意見などありましたらご教示ください。
40
+
41
+
42
+
43
+ ---
44
+
45
+
46
+
47
+ 2021/01/15 11:17追記
48
+
49
+
50
+
51
+ 10ほどのサイトをトリガー実行で巡回。
52
+
53
+ 共通処理はライブラリ化(下記コードの関数はライブラリ内にある)。
54
+
55
+ これまでエディタ実行、トリガー実行をそれぞれ15回 x 10サイト回しており、全て成功。
56
+
57
+
58
+
59
+ 一度だけ、トリガー実行中に当該スプレッドシートを開き、添付コードの箇所でのシート書き込みに一行の抜けが生じました。処理は最後まで完遂しています。
60
+
61
+ 当時itemListに格納していたデータ量は150行、テキスト形式ファイルにして200KB程度です。
62
+
63
+ スプレッドシート内のReportシートには700行、テキスト形式ファイルにして500KB程度のデータが存在します。
64
+
65
+
66
+
67
+ ```ここに言語を入力
68
+
69
+ function myTemp(itemList, settings) {
70
+
71
+
72
+
73
+ //itemList 連想配列 今回取得データを格納
74
+
75
+ //連想配列 書き込み先のシートや範囲などの情報を格納
76
+
77
+
78
+
79
+ //Tempシート 今回取得データを、重複チェックのため一時記録
80
+
81
+ //Reportシート 全データを蓄積
82
+
83
+
84
+
85
+ //Tempシート初期化
86
+
87
+ settings.sheet.temp.clear()
88
+
89
+
90
+
91
+ //配列から挿入
92
+
93
+ itemList.forEach(function(x){
94
+
95
+ x.forEach(function(y){
96
+
97
+ let rowLast = settings.sheet.temp.getLastRow()
98
+
99
+ let rowWrite = rowLast + 1
100
+
101
+ for(let i = 0; i <= y.length -1; i++) {
102
+
103
+ settings.sheet.temp.getRange(rowWrite, i+1).setValue(y[i])
104
+
105
+ }
106
+
107
+ })
108
+
109
+ })
110
+
111
+
112
+
113
+ //行末に重複チェック用の数式(COUNTIFS)を挿入
114
+
115
+ 割愛
116
+
117
+
118
+
119
+ //重複データが存在する行を削除
120
+
121
+ 割愛
122
+
123
+
124
+
125
+ }
126
+
127
+
128
+
129
+ ```

2

投稿文修正

2021/01/15 02:22

投稿

kingston02
kingston02

スコア0

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  0. Parserライブラリ経由で今回取得データをシート内に一時保存
24
24
 
25
- 0. シート内で既存データと今回取得データを重複チェック
25
+ 0. シート内で既存データと今回取得データを重複チェック後、新規追加データがあれば書き込み。
26
26
 
27
27
  0. 新規追加データがあればメール通知
28
28
 

1

書式変更

2021/01/14 16:29

投稿

kingston02
kingston02

スコア0

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,12 @@
3
3
 
4
4
 
5
5
  GAS&スプレッドシートでクローリングとスクレイピングをトリガー実行しています。
6
+
7
+
8
+
9
+
10
+
11
+ ### 発生している問題・エラーメッセージ
6
12
 
7
13
 
8
14
 
@@ -31,43 +37,3 @@
31
37
 
32
38
 
33
39
  提案・意見などありましたらご教示ください。
34
-
35
-
36
-
37
- ### 発生している問題・エラーメッセージ
38
-
39
-
40
-
41
- ```
42
-
43
- エラーメッセージ
44
-
45
- ```
46
-
47
-
48
-
49
- ### 該当のソースコード
50
-
51
-
52
-
53
- ```ここに言語名を入力
54
-
55
- ソースコード
56
-
57
- ```
58
-
59
-
60
-
61
- ### 試したこと
62
-
63
-
64
-
65
- ここに問題に対して試したことを記載してください。
66
-
67
-
68
-
69
- ### 補足情報(FW/ツールのバージョンなど)
70
-
71
-
72
-
73
- ここにより詳細な情報を記載してください。