v2.5.2
Giriş yap

PHP kod tekrar döngü

canyesilyurt
590 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhaba elimde aşağıdaki gibi bir kod mevcut ve sql tablosundaki hesaplara işlem belirlenen miktar kadar yapmakta. Ben bu kodu for ile döngüye soktuğumda 1-2 işlem sonrası timeout'a düşüyor. Timeout süresi arttırdığımda da aynı sorun devam etmekte. Bu kodu nasıl belirlediğim sayı kadar timeout'a düşürmeyecek şekilde işlem yaptırabilirim? Yardımcı olursanız çok memnun olurum.

$otortfavHesaplar = DB::query("SELECT * FROM otortfav ORDER BY RAND()");
foreach ($otortfavHesaplar as $hesap){
$favoriYap = tTwitter($hesap->appID, 'favorite', $tweetID, $hesap->favori, '../'.uyelerXML);
$retweetYap = tTwitter($hesap->appID, 'retweet', $tweetID, $hesap->retweet, '../'.uyelerXML);
}
Cevap yaz
Cevaplar (2)
fatihozpolat
1243 gün önce

işlemi sadece 1 kere yapmakla yükümlü olan bir php sayfası hazırla.
(burda diyelim 100 kullanıcıyı döngüye alıyorsun onun yerine sadece 1 kullanıcıyı işleyecek şekilde değiştir yani.)

Başka bir sayfada frontend olarak 100 kullnıcıyı liste/tablo/json vb şekilde sırayla işleyebileceğin bir hale getir sadece idleri bile yeter büyük ihtimalle,

Daha sonra listede baştan başlayarak diyer sayfaya o kullanıcıyı gönder ajax vb bir şey ile, işlem bitince bir sonraki kullanıcıya geç.

Tek bir kullanıcının işlemi timeout'a düşürmediği sürece sıkıntı yaşamazsın, düşürürse de sadece o işlem eksik kalır bir sonraki işlemden yine devam ettirebilirsin.

themonster
1242 gün önce
function tw($tweetID,$otortfavHesaplar,$index){
    if(!isset($otortfavHesaplar[$index])) 
        return false;
    
    
    $hesap = $otortfavHesaplar[$index];
    $favoriYap = tTwitter($hesap->appID, 'favorite', $tweetID, $hesap->favori, '../'.uyelerXML);
    $retweetYap = tTwitter($hesap->appID, 'retweet', $tweetID, $hesap->retweet, '../'.uyelerXML);
    
    sleep(2); // 2 saniye bekletelimi yine de garanti olsun
    tw($tweetID,$otortfavHesaplar,$index+1);
}

$otortfavHesaplar = DB::query("SELECT * FROM otortfav ORDER BY RAND()");
tw($tweetID,$otortfavHesaplar,0);