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
$cronLockManager
public
CronLockManager
$cronLockManager
Attributes
- #[Inject]
$operationRunner
Boundary of one cron action (see {@see self::tryCall()}).
public
OperationRunner
$operationRunner
Attributes
- #[Inject]
$settingContext
public
SettingContext
$settingContext
Attributes
- #[Inject]
$settingManager
public
SettingManager
$settingManager
Attributes
- #[Inject]
$debugMode
protected
bool
$debugMode
= false
$productionMode
protected
bool
$productionMode
= false
$assetManager read-only
private
AssetManager
$assetManager
Methods
__construct()
public
__construct(AssetManager $assetManager) : mixed
Parameters
- $assetManager : AssetManager
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
startup()
public
startup() : void
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
boolsendError()
protected
sendError(string $message[, int $code = 500 ]) : never
Parameters
- $message : string
- $code : int = 500
Return values
neversendSkipped()
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
neversendSuccess()
protected
sendSuccess([array<string|int, mixed> $data = [] ]) : never
Parameters
- $data : array<string|int, mixed> = []
Return values
nevertryCall()
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>