• 11-12-2023, 12:57:41
    #1
    Merhaba,

    Bir kontrol sağlayıp bu kontrolü zamanlı çalıştırmak istiyorum.

    while içerisinde sorguları sıralayıp çıkan kullanıcılara mail atmak istiyorum ama bunun içine sınır koymam gerekiyor.

    Örnek : ali kullanıcısını buldu mail attım 5 saniye sonra veli gelecek ona mail atıcam ama buna zaman koymayı başaramadım.


    while içerisine sleep(); Koyduğumda çalışmıyor bunu nasıl sağlarım acaba?
  • 11-12-2023, 13:01:08
    #2
    Buna zaman koymak çok mantıklı olmaz. Bu tarz işlemler için queue servisleri kullanabilirsiniz.
  • 11-12-2023, 13:01:17
    #3
    <?php
    $calismaAraligi = 5; // saniye cinsinden çalışma aralığı

    while (true) {
    // Döngü içinde yapılacak işlemler

    // Döngüyü belirli bir süre beklet
    sleep($calismaAraligi);
    }

    // Not: Bu döngü sonsuza kadar çalışır, istediğin koşula göre döngüyü sonlandırmalısın.
    ?>
  • 11-12-2023, 13:11:34
    #4
    Hani kodu bi nebze paylaşırsanız bakardık. Şuaşamada while içine koydum deyince insanın aklına neresinde acaba demek geliyor. Belkide yanlış yerdedir. Ve ayrıca sleepte olur queue de olur. Kodun durumuna göre sleep yeride değişebilir üstadım.
  • 11-12-2023, 13:12:03
    #5
    Adalente adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Bir kontrol sağlayıp bu kontrolü zamanlı çalıştırmak istiyorum.

    while içerisinde sorguları sıralayıp çıkan kullanıcılara mail atmak istiyorum ama bunun içine sınır koymam gerekiyor.

    Örnek : ali kullanıcısını buldu mail attım 5 saniye sonra veli gelecek ona mail atıcam ama buna zaman koymayı başaramadım.


    while içerisine sleep(); Koyduğumda çalışmıyor bunu nasıl sağlarım acaba?
    Merhaba,

    Bunu php ile yapmayın. Çünkü php'nin çalışma zamanı ve kaynak sınırları var. Çeşitli timeout hataları gelebilir ve kaynak aşımı sorunları oluşabilir. Bu işin olması gereken ve doğru yolu saniyelik cronjob'la php'yi tetiklemektir. Saniyelik cron için host firmanızla görüşün. Muhtemelen izin vermezler. Eğer vps/ded kullanıyorsanız crontab'e eklemeniz gerekir. cronjob'ta while veya for içinde bir php saniyelik olarak çalıştırılabilir.
  • 11-12-2023, 13:35:19
    #6
    Zaten cronjob koyacağım ama while ile kontrol sağlayıp mail attıracağım bunuda zamana bağlamam gerekiyor.

    While içinde kullanıcıları çekiyorum ve hakkı 0 olanları alıyorum bunları 5 saniye ara ile çekip hakkına 1 ekleyip mail attıracağım.

    cronjob her ayın birinde çalışacak ama zamanlı olmalıki mail spamına düşmesin.