Neden Batch Hazırlamalıyım , Nasıl Hazırlarım , Avantajları Dez Avantajları.

Yüksek ziyaretçilere hizmet veren web uygulamalarında, dinamik olarak mysql bağlantısı kurup istenilen sonuçları ekrana basmak yapılabilcek en büyük hatalardan biridir , bunu yapanlarda zaten kısa bir süre içersinde siteye erişemiyorum , sayfalar yüklenmiyor, içerik bir türlü gelmiyor gibi kullanıcı şikayetleriyle muhatab olur buda o web uygulamasının amacı ne olursa olsun kullanıcı kaybetmesine neden olacaktır.Dikkatinizi çekmek istediğim bir nokta var , burdaki performans problemi kullanıcıların pc yada internet hızlarıyla ilgili değildir , doğrudan uygulamanın bulunduğu sunucu ile ilgilidir.

İşte bu noktada imdadımıza yetişen iki yöntem var.BU Yöntemler…

1-Batch hazırlayarak Belli zamanlarda içerikleri html halinde oluşturup bu html leri kullanıcaya sunmak

2-Memcache kullanmak Yani içeriği ram üstünde tutarak daha hızlı kullanıcıya sunmak.Memcache hakkında daha fazla bilgiyi MemcacheKurulum ve Kullanım yazımda bulabilirsiniz.

Yukarıda bahsettiğim iki yöntemden , ram kapasitesi yeterli olduğu müddetçe en uygunu memcachedir , ama en sık kullanılan yöntem Batch yardımı ile html oluşturmak.

Bu yöntem sayesinde kullanıcıları içerik sunmak için mysql e bağlanmalarına gerek kalmaz , ilgili içeriği sizin hazırladığınız html ile ulaşacaklardır.

Örneğin bir haber sitesindeki en çok okunan haberler,en yeni haberler yada bir fotoğraf içerik yönetim sisteminde en çok görüntülenen fotoğraflar vb.

Peki Nasıl olucak bu Batch.

Oldukça basit , siz herhangi bir özel uygulama yapıyormuş gibi değil , kullanıcıya içeriği sunacakmış gibi kodunuzu geliştiriyorsunuz , ekstra olarak en sonunda bu yazdığınız kodu bir html dosyaya yazıyorsunuz , yani kodlarınız her çalıştığında içerği bir html e yazacak , siz daha sonra bu html i uygulamanızdaki ilgili yerde include edip içeriği kullanıcıya göstereceksiniz.

Burdaki önemli nokta , php kodunuzun kendi kendine çalışması işte bu noktada linux uygulaması olan crontab istediğiniz işlemi gerçekleştiriyor.Bu işlemin windows daki karşılığı zamanlanmış görev aşağıdaki örnekdeki gibi crontaba batchimizi ekliyoruz. Crontab Nedir? ilgili yazımda daha fazla bilgi bulabilirsiniz.

0 * * * * php /var/www/html/cron.php

İşte bu kadar basit cron tab her saat başı çalışıp cron.php yi çalıştıracak ve belirttiğiniz dizine ilgili klasörü oluşturacaktır.Bu işlemi ne kadar öok yer için uygularsanız mysql yükünüz o kadar azalacak performansda aynı oranda artacaktır.