@vtecx/vtecxdocument 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/batchjob.md +86 -8
- package/package.json +1 -1
package/docs/batchjob.md
CHANGED
|
@@ -60,9 +60,44 @@ src/batchjob/{モジュール名}.ts
|
|
|
60
60
|
|
|
61
61
|
スケジュール設定で指定するモジュール名は、通常、パスと拡張子を除いた `daily-report` です。
|
|
62
62
|
|
|
63
|
+
### `/_html/batchjob` の事前登録
|
|
64
|
+
|
|
65
|
+
初回アップロードの前に、登録先である `/_html/batchjob` フォルダーが vte.cx サービス上に存在している必要があります。フォルダーがない状態で Rspack のアップロードを実行するとエラーになります。
|
|
66
|
+
|
|
67
|
+
プロジェクトの `setup/_settings/htmlfolders.xml` に `/_html/batchjob` を定義します。
|
|
68
|
+
|
|
69
|
+
```xml
|
|
70
|
+
<feed>
|
|
71
|
+
<entry>
|
|
72
|
+
<contributor>
|
|
73
|
+
<uri>urn:vte.cx:acl:/_group/$admin,CRUD</uri>
|
|
74
|
+
</contributor>
|
|
75
|
+
<link rel="self" href="/_html/batchjob" />
|
|
76
|
+
</entry>
|
|
77
|
+
</feed>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
実際のファイルでは、プロジェクトの権限設計に応じた `contributor` を設定してください。既存の `/_settings` や `/_html` の定義がある場合は削除せず、`/_html/batchjob` の Entry を追加します。
|
|
81
|
+
|
|
82
|
+
対象サービスへログインした後、次のコマンドでフォルダー定義をアップロードします。
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pnpm upload:htmlfolders
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
これは通常、サービスごとの初回セットアップ時、または `htmlfolders.xml` を変更したときに実行します。すでに `/_html/batchjob` が登録済みであれば、batchjob モジュールを更新するたびに実行する必要はありません。
|
|
89
|
+
|
|
63
90
|
## ビルドとアップロード
|
|
64
91
|
|
|
65
|
-
対象の vte.cx
|
|
92
|
+
対象の vte.cx サービスへログインし、初回は `/_html/batchjob` を登録してから、Rspack コマンドを実行します。
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
pnpm run login
|
|
96
|
+
pnpm upload:htmlfolders
|
|
97
|
+
pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`/_html/batchjob` が登録済みの場合、モジュール更新時は次のコマンドだけで構いません。
|
|
66
101
|
|
|
67
102
|
```bash
|
|
68
103
|
pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
|
|
@@ -140,6 +175,29 @@ exports.run = async function (vtecxnext: VtecxNext) {
|
|
|
140
175
|
|
|
141
176
|
利用できるメソッドと引数は、プロジェクトで使用している `@vtecx/vtecxnext` のバージョンに従ってください。
|
|
142
177
|
|
|
178
|
+
## 禁止されている構文
|
|
179
|
+
|
|
180
|
+
batchjobでは以下が禁止されています。
|
|
181
|
+
TypeScript AST で判定しています。
|
|
182
|
+
|
|
183
|
+
- import
|
|
184
|
+
- export
|
|
185
|
+
- class
|
|
186
|
+
- super
|
|
187
|
+
- eval
|
|
188
|
+
- Function
|
|
189
|
+
- AsyncFunction
|
|
190
|
+
- GeneratorFunction
|
|
191
|
+
- require
|
|
192
|
+
- process
|
|
193
|
+
- globalThis
|
|
194
|
+
- global
|
|
195
|
+
- XMLHttpRequest
|
|
196
|
+
- WebSocket
|
|
197
|
+
- Worker
|
|
198
|
+
- WebAssembly
|
|
199
|
+
- Proxy
|
|
200
|
+
|
|
143
201
|
### vte.cx データ操作の注意点
|
|
144
202
|
|
|
145
203
|
- フィールド検索を行う URL には `f` パラメータを付ける。
|
|
@@ -293,12 +351,14 @@ exports.run = async function (vtecxnext: VtecxNext) {
|
|
|
293
351
|
1. `src/batchjob/{モジュール名}.ts` を実装する。
|
|
294
352
|
2. 型チェック、Lint、単体テストを実行する。
|
|
295
353
|
3. 対象環境とログイン先を確認する。
|
|
296
|
-
4.
|
|
297
|
-
5.
|
|
298
|
-
6.
|
|
299
|
-
7. `/
|
|
300
|
-
8.
|
|
301
|
-
9.
|
|
354
|
+
4. 初回は `setup/_settings/htmlfolders.xml` に `/_html/batchjob` が定義されていることを確認する。
|
|
355
|
+
5. 初回は `pnpm upload:htmlfolders` で登録先フォルダーをアップロードする。
|
|
356
|
+
6. Rspack コマンドで JavaScript をビルドし、アップロードする。
|
|
357
|
+
7. `/_html/batchjob/{モジュール名}.js` が登録されたことを確認する。
|
|
358
|
+
8. 必要なサービスプロパティを設定する。
|
|
359
|
+
9. `/_settings/properties` Entry の `rights` に `_batchjob.*` のスケジュールを登録する。
|
|
360
|
+
10. 少量のデータまたは副作用を抑えた設定で動作確認する。
|
|
361
|
+
11. 実行ログ、Entry の状態遷移、外部処理の結果を確認する。
|
|
302
362
|
|
|
303
363
|
## AI コーディングエージェント向けチェックリスト
|
|
304
364
|
|
|
@@ -306,6 +366,8 @@ exports.run = async function (vtecxnext: VtecxNext) {
|
|
|
306
366
|
|
|
307
367
|
- [ ] `exports.run = async function (vtecxnext)` の形式になっている。
|
|
308
368
|
- [ ] 引数の `vtecxnext` を使用し、認証情報を埋め込んでいない。
|
|
369
|
+
- [ ] `setup/_settings/htmlfolders.xml` に `/_html/batchjob` が定義されている。
|
|
370
|
+
- [ ] 初回アップロード前に `pnpm upload:htmlfolders` を実行している。
|
|
309
371
|
- [ ] ソースと登録先が `batchjob/{モジュール名}` で対応している。
|
|
310
372
|
- [ ] スケジュール右端のモジュール名が登録ファイルと一致している。
|
|
311
373
|
- [ ] 検索 URL に必要な `f` と件数上限がある。
|
|
@@ -320,6 +382,23 @@ exports.run = async function (vtecxnext: VtecxNext) {
|
|
|
320
382
|
|
|
321
383
|
## よくある問題
|
|
322
384
|
|
|
385
|
+
### アップロード時に `/_html/batchjob` が存在しないエラーになる
|
|
386
|
+
|
|
387
|
+
Rspack のアップロード先フォルダーがサービス上に未登録です。
|
|
388
|
+
|
|
389
|
+
1. `setup/_settings/htmlfolders.xml` に `/_html/batchjob` の Entry を追加する。
|
|
390
|
+
2. 対象サービスへログインする。
|
|
391
|
+
3. `pnpm upload:htmlfolders` を実行する。
|
|
392
|
+
4. Rspack のアップロードコマンドを再実行する。
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
pnpm run login
|
|
396
|
+
pnpm upload:htmlfolders
|
|
397
|
+
pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
`/_html` だけが存在していても、子フォルダーの `/_html/batchjob` が未登録であればアップロードできません。
|
|
401
|
+
|
|
323
402
|
### ジョブが起動しない
|
|
324
403
|
|
|
325
404
|
- JavaScript が `/_html/batchjob` 配下へ登録されているか確認する。
|
|
@@ -336,7 +415,6 @@ exports.run = async function (vtecxnext: VtecxNext) {
|
|
|
336
415
|
|
|
337
416
|
### 同じ処理が複数回実行される
|
|
338
417
|
|
|
339
|
-
- Entry の状態を処理開始前に `processing` へ更新する。
|
|
340
418
|
- revision 競合を検出し、競合した側で処理を続行しない。
|
|
341
419
|
- 外部処理に冪等キーまたは処理済み判定を追加する。
|
|
342
420
|
- 実行間隔より処理時間が長くなっていないか確認する。
|