29 lines
964 B
PHP
29 lines
964 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Jobs\BackfillArtworkEmbeddingsJob;
|
|
use Illuminate\Console\Command;
|
|
|
|
final class BackfillArtworkEmbeddingsCommand extends Command
|
|
{
|
|
protected $signature = 'artworks:embeddings-backfill {--after-id=0 : Resume after this artwork id} {--batch=200 : Batch size for resumable fan-out} {--force : Regenerate even when source hash matches}';
|
|
|
|
protected $description = 'Queue resumable CLIP embedding backfill for artworks';
|
|
|
|
public function handle(): int
|
|
{
|
|
$afterId = max(0, (int) $this->option('after-id'));
|
|
$batch = max(1, min((int) $this->option('batch'), 1000));
|
|
$force = (bool) $this->option('force');
|
|
|
|
BackfillArtworkEmbeddingsJob::dispatch($afterId, $batch, $force);
|
|
|
|
$this->info("Queued artwork embedding backfill (after_id={$afterId}, batch={$batch}, force=" . ($force ? 'yes' : 'no') . ').');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|