質問するログイン新規登録

質問編集履歴

4

追記

2021/01/15 13:51

投稿

kingston02
kingston02

スコア0

title CHANGED
File without changes
body CHANGED
@@ -62,4 +62,10 @@
62
62
 
63
63
  }
64
64
 
65
- ```
65
+ ---
66
+
67
+ 2021/01/15 22:49追記
68
+
69
+ 根本的な解決にはなっていませんが、処理の高速化を兼ね、シート書き込み回数を減らすことで回避することにしました。
70
+
71
+ コメントをくださった方がいるので、しばらく回答オープンにしておきます。

3

追記

2021/01/15 13:51

投稿

kingston02
kingston02

スコア0

title CHANGED
File without changes
body CHANGED
@@ -17,4 +17,49 @@
17
17
 
18
18
  消極的な回避策として、トリガー実行を深夜帯のみにすることも視野に入れています。
19
19
 
20
- 提案・意見などありましたらご教示ください。
20
+ 提案・意見などありましたらご教示ください。
21
+
22
+ ---
23
+
24
+ 2021/01/15 11:17追記
25
+
26
+ 10ほどのサイトをトリガー実行で巡回。
27
+ 共通処理はライブラリ化(下記コードの関数はライブラリ内にある)。
28
+ これまでエディタ実行、トリガー実行をそれぞれ15回 x 10サイト回しており、全て成功。
29
+
30
+ 一度だけ、トリガー実行中に当該スプレッドシートを開き、添付コードの箇所でのシート書き込みに一行の抜けが生じました。処理は最後まで完遂しています。
31
+ 当時itemListに格納していたデータ量は150行、テキスト形式ファイルにして200KB程度です。
32
+ スプレッドシート内のReportシートには700行、テキスト形式ファイルにして500KB程度のデータが存在します。
33
+
34
+ ```ここに言語を入力
35
+ function myTemp(itemList, settings) {
36
+
37
+ //itemList 連想配列 今回取得データを格納
38
+ //連想配列 書き込み先のシートや範囲などの情報を格納
39
+
40
+ //Tempシート 今回取得データを、重複チェックのため一時記録
41
+ //Reportシート 全データを蓄積
42
+
43
+ //Tempシート初期化
44
+ settings.sheet.temp.clear()
45
+
46
+ //配列から挿入
47
+ itemList.forEach(function(x){
48
+ x.forEach(function(y){
49
+ let rowLast = settings.sheet.temp.getLastRow()
50
+ let rowWrite = rowLast + 1
51
+ for(let i = 0; i <= y.length -1; i++) {
52
+ settings.sheet.temp.getRange(rowWrite, i+1).setValue(y[i])
53
+ }
54
+ })
55
+ })
56
+
57
+ //行末に重複チェック用の数式(COUNTIFS)を挿入
58
+ 割愛
59
+
60
+ //重複データが存在する行を削除
61
+ 割愛
62
+
63
+ }
64
+
65
+ ```

2

投稿文修正

2021/01/15 02:22

投稿

kingston02
kingston02

スコア0

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
  スクリプトの内容は次の通りです。
11
11
  0. シート内で既定した巡回URLと巡回方法を読み込み
12
12
  0. Parserライブラリ経由で今回取得データをシート内に一時保存
13
- 0. シート内で既存データと今回取得データを重複チェック
13
+ 0. シート内で既存データと今回取得データを重複チェック後、新規追加データがあれば書き込み。
14
14
  0. 新規追加データがあればメール通知
15
15
 
16
16
  可否を調べていませんが、当該ファイルの閲覧を一時的にロックできたとしても、スクリプトが完遂しないとロックしたまま解除されないといった問題がありそうです。

1

書式変更

2021/01/14 16:29

投稿

kingston02
kingston02

スコア0

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  GAS&スプレッドシートでクローリングとスクレイピングをトリガー実行しています。
4
4
 
5
+
6
+ ### 発生している問題・エラーメッセージ
7
+
5
8
  動作におおよそに問題はないのですが、トリガー実行時に当該スプレッドシートを開いた時、シート書き込みに抜け漏れが生じることがあるとわかりました。対策のアイディアをいただけないでしょうか。
6
9
 
7
10
  スクリプトの内容は次の通りです。
@@ -14,24 +17,4 @@
14
17
 
15
18
  消極的な回避策として、トリガー実行を深夜帯のみにすることも視野に入れています。
16
19
 
17
- 提案・意見などありましたらご教示ください。
20
+ 提案・意見などありましたらご教示ください。
18
-
19
- ### 発生している問題・エラーメッセージ
20
-
21
- ```
22
- エラーメッセージ
23
- ```
24
-
25
- ### 該当のソースコード
26
-
27
- ```ここに言語名を入力
28
- ソースコード
29
- ```
30
-
31
- ### 試したこと
32
-
33
- ここに問題に対して試したことを記載してください。
34
-
35
- ### 補足情報(FW/ツールのバージョンなど)
36
-
37
- ここにより詳細な情報を記載してください。