hatayı yakaladıgımda , hatalı linki siliyorum ama zamanlanmış görev failed veriyor. hata olmasaydı feed sayfalarından veri cekicekti. ama failed verince , o verileri cekmiyor. ben hatalı linkleri sildikten sonra o verileride ceksin istiyorum. tam kodum aşağıda hocam.
Bu arada tüm kodu, parça parça siz yazdınız hocam 🙂
$schedule->call(function () {
libxml_use_internal_errors(true);
$urls = DB::table('feed')
->get();
$responses = Http::pool(function (Pool $pool) use ($urls) {
foreach ($urls as $item) {
$alias = $item->site_id . '|' . $item->katlink . '|' . $item->kategori. '|' . $item->user_id;
try {
$response = Http::timeout(3)
->get($item->katlink);
if ($response->clientError()) {
$r = Http::post($item->katlink);
if($r->failed()) {
Feed::where('katlink', $item->katlink)
->delete();
}
}
if ($response->serverError()) {
return Http::post($item->katlink)->throw(function (Response $response, \Illuminate\Http\Client\RequestException $e) {
$hata2 = [$e, $response->transferStats->gethandlerStats()];
$sil = $hata2[1];
if($hata2){
$deleted = Feed::where('katlink', $sil)->delete();
}
});
}
} catch(\Illuminate\Http\Client\ConnectionException $e) {
$hatasil = [$e ,$item->katlink];
$sil = $hatasil[1];
if($hatasil){
$deleted = Feed::where('katlink', $sil)->delete();
}
}
$requests[] = $pool->as($alias)
->get($item->katlink);
}
return $requests;
});
foreach ($responses as $alias => $response) {
$site_id = explode('|', $alias)[0];
$user_id = explode('|', $alias)[3];
$kategori = explode('|', $alias)[2];
$feed = simplexml_load_string($response->body());
foreach ($feed->channel->item as $article) {
$img = $article->description;
if (preg_match( '|<img.*?src=[\'"](.*?)[\'"].*?>|i', $img, $matches)) {
$src = $matches[ 1 ];
DB::table('bot')->insertOrIgnore([
'site_id' => $site_id,
'user_id' => $user_id,
'kategori' => $kategori,
'baslik' => $article->title,
'url' => $article->link,
'image' => $src,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
}else{
DB::table('bot')->insertOrIgnore([
'site_id' => $site_id,
'user_id' => $user_id,
'kategori' => $kategori,
'baslik' => $article->title,
'url' => $article->link,
'image' => $src,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
}
}
}
})->everyMinute();