ProgressRegistry
in package
FinalYes
バックグラウンド処理の進捗の読み出し口の登録簿
処理の種類(進捗表示の type)ごとに進捗の読み出し方を持ち、ACMS_POST_Logger_ProgressJson が これを引いて進捗を返す。管理画面の進捗表示(@ablogcms/background-process の BackgroundProcess)は type を送ってポーリングするだけなので、拡張アプリは独自のバックグラウンド処理の進捗ログをここへ 登録すれば同じ進捗表示を使える。登録は ServiceProvider::init() で Application::make('background-task.progress') に対して行う。中止もできるようにするには background-task.registry(TaskRegistry)にも同じ type で登録する。
Table of Contents
Properties
Methods
- has() : bool
- read() : array<string, mixed>|null
- 進捗を返す。未登録・進捗が無い・読み出しに失敗した場合は null
- readLogFile() : array<string, mixed>|null
- 進捗ログのファイルを読む。無い・壊れている場合は null
- register() : void
- registerLogFile() : void
- 進捗ログのファイル(Acms\Services\Common\Logger が書き出す JSON 等)を読む読み出し方を登録する
Properties
$readers
private
array<string, callable(Field): Array>
$readers
= []
Methods
has()
public
has(string $type) : bool
Parameters
- $type : string
Return values
boolread()
進捗を返す。未登録・進捗が無い・読み出しに失敗した場合は null
public
read(string $type, Field $request) : array<string, mixed>|null
読み出しの失敗で例外を投げると、進捗表示のポーリングがエラーで止まって画面から状況が分からなくなるため、 例外は null として扱う(書き込み中のファイルを読んだ等の一時的な失敗は次のポーリングで回復する)。
Parameters
- $type : string
- $request : Field
Return values
array<string, mixed>|nullreadLogFile()
進捗ログのファイルを読む。無い・壊れている場合は null
public
static readLogFile(string $path) : array<string, mixed>|null
進捗ログの置き場所がリクエストの値で変わる処理(ブログごとに持つ等)の読み出し方から使う。
Parameters
- $path : string
Return values
array<string, mixed>|nullregister()
public
register(string $type, callable(Field): Array $reader) : void
Parameters
- $type : string
-
処理の種類
- $reader : callable(Field): Array
-
進捗を返す。受け取るのは進捗を取りに来たリクエストの値。 進捗が無ければ null を返す
registerLogFile()
進捗ログのファイル(Acms\Services\Common\Logger が書き出す JSON 等)を読む読み出し方を登録する
public
registerLogFile(string $type, string $path) : void
Parameters
- $type : string
-
処理の種類
- $path : string
-
進捗ログのファイルのパス