jobRepository = new ContaiJobRepository();
}
public function render(): void {
$this->renderAdminNotices();
$creditGuard = new ContaiCreditGuard();
$creditCheck = $creditGuard->validateCredits();
if ( ! $creditCheck['has_credits'] ) :
?>
getQueueStatus();
?>
jobRepository->countJobsByTypeAndStatus(
ContaiKeywordExtractionJob::TYPE,
ContaiJobStatus::PENDING
);
$processing = $this->jobRepository->countJobsByTypeAndStatus(
ContaiKeywordExtractionJob::TYPE,
ContaiJobStatus::PROCESSING
);
$processingJobs = $this->jobRepository->getProcessingJobsByType(
ContaiKeywordExtractionJob::TYPE
);
return array(
'pending' => $pending,
'processing' => $processing,
'processing_jobs' => $processingJobs,
);
}
private function renderJobRow( array $job ): void {
$payload = json_decode( $job['payload'], true ) ?? array();
$topic = $payload['topic'] ?? $payload['domain'] ?? __( 'Unknown', '1platform-content-ai' );
$country = strtoupper( $payload['country'] ?? 'N/A' );
$lang = strtoupper( $payload['lang'] ?? 'N/A' );
$elapsed = $this->calculateElapsedTime( $job['processed_at'] );
?>
|
|
|
|
0 ) {
return sprintf( '%dm %ds', $minutes, $seconds );
}
return sprintf( '%ds', $seconds );
}
}