interface AsyncTaskHandlerInterface
{
public function getHandlerKey(): string;
public function getType(): string;
/** @return AsyncTaskBatchItemInterface[] */
public function getNextBatchToQueue(
Record $task, array $progress, int $batchSize
): array;
public function processItem(Record $task, array $item): Feedback;
public function finalize(Record $task): Feedback;
public function hasFinalization(): bool;
public function getMaxItemRetries(): int;
public function allowsFailureRetry(): bool;
public function allowsFailureRerun(): bool;
}