• 28-05-2021, 16:57:50
    #1
    Merhaba yazılımımıza 10 a yakın cron çalıştırmamız gerekiyor ve cronlardan birisi 1 dakika birisi 3 saat birisi 15 dakika gibi farklı sürelerde çalışması gerekiyor bunu tek bir crona (tek bir dosyaya) nasıl düşürebiliriz. Yardım ederseniz sevinirim
  • 28-05-2021, 16:59:25
    #2
    Dosyaya göndereceğiniz parametreler ile tüm cronlarınızı tek dosya haline getirebilirsiniz.
  • 28-05-2021, 17:01:38
    #3
    Bir get parametresi eklersiniz o parametre üzerinden if ile kod bloğu oluşturursunuz. Oluşturacağınız cronlarda bağlantı aynı sadece sonundaki parametre farklı olur. Dosya ilgili parametre deki bloğu çalıştırır.
    • erkantalhaboz
    erkantalhaboz bunu beğendi.
    1 kişi bunu beğendi.
  • 28-05-2021, 17:04:22
    #4
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Bir get parametresi eklersiniz o parametre üzerinden if ile kod bloğu oluşturursunuz. Oluşturacağınız cronlarda bağlantı aynı sadece sonundaki parametre farklı olur. Dosya ilgili parametre deki bloğu çalıştırır.
    Bu tür yapılarda if-else yapısı kurmak yerine switch-case yapısı kurmak hem kod okunurluğunu artıracaktır hem de daha iyi performans verecektir. bknz: http://www.blackwasp.co.uk/SpeedTestIfElseSwitch.aspx
  • 28-05-2021, 17:07:39
    #5
    sumer-bilisim adlı üyeden alıntı: mesajı görüntüle
    Bu tür yapılarda if-else yapısı kurmak yerine switch-case yapısı kurmak hem kod okunurluğunu artıracaktır hem de daha iyi performans verecektir. bknz: http://www.blackwasp.co.uk/SpeedTestIfElseSwitch.aspx
    Doğru, o da olabilir. En mantıklısı switch-case yapısıdır anlık aklıma if geldi sadece
    • sumer-bilisim
    • erkantalhaboz
    sumer-bilisim ve erkantalhaboz bunu beğendi.
    2 kişi bunu beğendi.
  • 28-05-2021, 17:58:49
    #6
    Örnekleme;

    Veritabanına cron isminde tablo oluşturun ve içerisine saat_1, saat_2, saat_3, saat_4, saat_5... şeklinde sütunlar oluşturun.

    Cron.php
    // Son kontrol saatlerini alın. ÖRN: 13.00, 13.15, 15.00, 15.30, 18.00 gibi.
    // Daha sonra
    if (/* Şuanki saat > saat_1+15DK */) {
    
    // if onaylanırda satın içini okursa, işlemlerinizi yaptırın, ardından son olarak saat_1 değerini şuanki zaman ile güncelleyin. (update [ saat_1=saat_1+15DK ] )
    }
    
    // 2. if
    if (/* Şuanki saat > saat_2+30DK */) {
    
    // if onaylanırda satın içini okursa, işlemlerinizi yaptırın, ardından son olarak saat_2 değerini şuanki zaman ile güncelleyin. (update [ saat_2=saat_2+30DK ] )
    }
    
    
    
    // 3. if
    // 4. if
    // 5. if
    // .....
  • 28-05-2021, 18:28:27
    #7
    Class kullanıp router ile method çağırmanızı tavsiye ederim böylece birden fazla yerde kullanan fonksiyonlarınızı method olarak içerden çağırırsınız daha düzenli bir yapı oluşur