CoolCMS API

AssetThumbnailCatchupPresenter extends BasePresenter
in package

Table of Contents

Properties

$cronLockManager  : CronLockManager
$operationRunner  : OperationRunner
Boundary of one cron action (see {@see self::tryCall()}).
$settingContext  : SettingContext
$settingManager  : SettingManager
$debugMode  : bool
$productionMode  : bool
$assetManager  : AssetManager

Methods

__construct()  : mixed
actionBackfillMeta()  : void
Backfills `Asset.meta` (real variant sizes) for assets where it is missing (`meta IS NULL`).
actionGenerate()  : void
Generates missing image variants (poster from the first frame) for video assets whose variants were never physically generated, typically because `ffmpeg` was missing or failed at upload time.
releaseLock()  : void
Releases the lock at most once; called by both `shutdown()` and the PHP shutdown function.
sendResponse()  : void
setConfigParameters()  : void
shutdown()  : void
startup()  : void
isSameSiteRequest()  : bool
Tells whether the request comes from the own site (Nette SameSite cookie); protects GET actions with a side effect.
sendError()  : never
sendSkipped()  : never
Reports that the job did only part of the work and the next call finishes the rest (e.g. a reindex done in chunks).
sendSuccess()  : never
tryCall()  : bool
Runs the `action<Action>()` method as one operation (transitional).

Properties

$operationRunner

Boundary of one cron action (see {@see self::tryCall()}).

public OperationRunner $operationRunner
Attributes
#[Inject]

Methods

actionBackfillMeta()

Backfills `Asset.meta` (real variant sizes) for assets where it is missing (`meta IS NULL`).

public actionBackfillMeta() : void

Assets outside FTP get an empty } so they count as processed and the loop does not repeat forever.

URL: /cron/system/asset-thumbnail-catchup/backfill-meta?token=xxx

Frequency: once after deployment, no longer needed afterwards.

Attributes
#[CronJob]
$frequency: 'manual'
$outbound: false

actionGenerate()

Generates missing image variants (poster from the first frame) for video assets whose variants were never physically generated, typically because `ffmpeg` was missing or failed at upload time.

public actionGenerate() : void

After MAX_ATTEMPTS attempts the asset is skipped for good (corrupted video, codec issue). The variant plan (sizes, watermark) is read from asset.variants, stored by the upload pipeline, so the cron is module-agnostic.

URL: /cron/system/asset-thumbnail-catchup/generate?token=xxx

Frequency: daily, at night.

Attributes
#[CronJob]
$frequency: 'daily:04:00'
$outbound: false

releaseLock()

Releases the lock at most once; called by both `shutdown()` and the PHP shutdown function.

public releaseLock() : void

sendResponse()

public sendResponse(Response $response) : void
Parameters
$response : Response

setConfigParameters()

public setConfigParameters([bool $debugMode = false ][, bool $productionMode = false ]) : void
Parameters
$debugMode : bool = false
$productionMode : bool = false

shutdown()

public shutdown(Response $response) : void
Parameters
$response : Response

isSameSiteRequest()

Tells whether the request comes from the own site (Nette SameSite cookie); protects GET actions with a side effect.

protected isSameSiteRequest() : bool

getHttpRequest() returns the IRequest interface, while isSameSite() exists only on Nette\Http\Request.

Return values
bool

sendError()

protected sendError(string $message[, int $code = 500 ]) : never
Parameters
$message : string
$code : int = 500
Return values
never

sendSkipped()

Reports that the job did only part of the work and the next call finishes the rest (e.g. a reindex done in chunks).

protected sendSkipped(string $reason[, array<string, mixed> $data = [] ]) : never

The scheduler does not record skipped as a run, so the job stays due and is called again on the next tick.

Parameters
$reason : string
$data : array<string, mixed> = []
Return values
never

sendSuccess()

protected sendSuccess([array<string|int, mixed> $data = [] ]) : never
Parameters
$data : array<string|int, mixed> = []
Return values
never

tryCall()

Runs the `action<Action>()` method as one operation (transitional).

protected tryCall(string $method, array<string, mixed> $params) : bool

Cron has no internalAction*(): its actions call the Api managers directly, so without this in scoped mode nothing would ever empty the unit of work of a cron run. The boundary is the action only; startup() (settings, token, lock) stays outside like the startup of an Api request. A cron action ends with AbortException from send*(), which is a regular end: the outcome comes from the response (ok succeeded, skipped unknown — possibly a part of a batch was done, error failed). Render and signal methods are not wrapped (cron presenters have none).

Parameters
$method : string
$params : array<string, mixed>
Return values
bool
On this page

Search results