同一テーブルに対して大量データを一括操作する処理の同時実行を抑止する
概要¶
1つのテーブルに対してインポートや一括更新など大量のデータを一括操作する処理を同時に実行すると、データベースが高負荷状態になり処理時間が非常に長くなることでシステム全体のパフォーマンスが悪化する場合があります。本機能では1つのテーブルに対して大量データを一括操作する処理の同時実行を抑止することでシステム全体のパフォーマンスを安定化することができます。
設定はGeneral.jsonのパラメータ「BlockSiteTaskWhileRunning」で行います。trueに設定することで本機能を有効にします。
注意事項¶
- パラメータファイルの変更を反映するには、アプリケーションの再起動が必要です。
制限事項¶
- 本機能は同一テーブルに対する同時実行を抑止する機能です。別テーブルに対する同時実行は抑止しません。
- 旧プラン(ミニ、ライト、スタンダード、プレミアム)契約者は対象外です。
動作仕様¶
対象となるサイト¶
本機能の対象となるサイトは「期限付きテーブル」「記録テーブル」です。
対象となる操作¶
本機能の対象となる操作は以下の通りです。同じテーブルに対して同時に実行しようとすると、あとから実行したほうがブロックされます。
| 実行種類 | 操作の種類 | 説明 |
|---|---|---|
| 画面 | 「一括更新」 | 一覧画面で複数レコードをまとめて更新する |
| 画面 | 「一括削除」 | 一覧画面で複数レコードをまとめて削除する |
| 画面 | 「インポート」 | 一覧画面でCSVファイルからデータを取り込む |
| 画面 | 「サマリ」同期 | 「テーブルの管理」-「サマリ」タブで選択したサマリを再計算する |
| API | 「一括作成・更新API」 | APIで複数レコードをまとめて作成または更新する |
| API | 「一括削除API」 | APIで複数レコードをまとめて削除する |
| API | 「インポートAPI」 | APIでCSVファイルからデータを取り込む |
| API | 「エクスポートAPI」 | APIでデータをファイル出力する |
| API | 「サマリ同期API」 | APIでサマリを再計算する |
| スクリプト | 「$p.apiBulkDelete」 | スクリプトで複数レコードをまとめて削除する |
| サーバスクリプト | items.BulkDelete | サーバスクリプトで複数レコードをまとめて削除する |
| サーバスクリプト | $ps.file.import | サーバスクリプトでCSVファイルからデータを取り込む |
| サーバスクリプト | $ps.file.export | サーバスクリプトでデータをファイル出力する |
動作の仕組み¶
- 先に実行した処理が終わると、ロックは自動的に解除されます
- 処理が途中で止まった場合でも、120秒後に自動的にロックが解除されます(次の操作が詰まったままになりません)
エラーメッセージ¶
本機能でブロックされた場合、以下のエラーメッセージが表示または返却されます。
画面操作¶
画面下部に「別のタスクが処理中です。後で実行してください。」のエラーメッセージが表示されます。
API、スクリプト¶
APIのレスポンスとして HTTPステータスコード:429 が返却されます。
サーバスクリプト¶
-
items.BulkDelete
0が返却されます。 -
$ps.file.import
画面下部に「別のタスクが処理中です。後で実行してください。」のエラーメッセージが表示されます。 -
$ps.file.export
画面下部に「別のタスクが処理中です。後で実行してください。」のエラーメッセージが表示されます。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.4.12.0以降 | 機能追加 |


