2025-07-05 18:26:04 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Jobs;
|
|
|
|
|
|
2025-08-09 15:22:56 +02:00
|
|
|
use App\Models\Feed;
|
2025-07-10 11:01:01 +02:00
|
|
|
use App\Models\Setting;
|
2025-07-05 18:26:04 +02:00
|
|
|
use App\Services\Log\LogSaver;
|
|
|
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
|
|
|
use Illuminate\Foundation\Queue\Queueable;
|
|
|
|
|
|
|
|
|
|
class ArticleDiscoveryJob implements ShouldQueue
|
|
|
|
|
{
|
|
|
|
|
use Queueable;
|
|
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
|
{
|
|
|
|
|
$this->onQueue('feed-discovery');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function handle(): void
|
|
|
|
|
{
|
2025-07-10 11:01:01 +02:00
|
|
|
if (!Setting::isArticleProcessingEnabled()) {
|
|
|
|
|
LogSaver::info('Article processing is disabled. Article discovery skipped.');
|
2025-08-09 15:22:56 +02:00
|
|
|
return;
|
|
|
|
|
}
|
2025-07-10 11:01:01 +02:00
|
|
|
|
2025-08-09 15:22:56 +02:00
|
|
|
if (!Feed::where('is_active', true)->exists()) {
|
|
|
|
|
LogSaver::info('No active feeds found. Article discovery skipped.');
|
2025-07-10 11:01:01 +02:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-05 18:26:04 +02:00
|
|
|
LogSaver::info('Starting article discovery for all active feeds');
|
|
|
|
|
ArticleDiscoveryForFeedJob::dispatchForAllActiveFeeds();
|
|
|
|
|
LogSaver::info('Article discovery jobs dispatched for all active feeds');
|
|
|
|
|
}
|
|
|
|
|
}
|