PHP ile RabbitMQ Kullanımı

RabbitMQ popüler bir mesaj kuyruğu sistemidir. Mesaj kuyruğu yazılımlarının genel çalışma şekli şöyledir; yapılacak işler bir kuyruğa aktarılır ve işi yapacak olan worker’lar sırasıyla kuyruktan iş alıp yaparlar. Uygulama akışı sırasında kullanıcının, tamamlanmasını beklemesine gerek olmayan işleri arka planda gerçekleştirmek ya da bir işi birden fazla worker’a dağıtarak daha kısa sürede tamamlamak gibi işler için kullanılır. Mainstream bir örnek vermek gerekirse; başarılı bir kayıt işleminden sonra kullanıcıya hoşgeldiniz mail’i gönderileceğini varsayalım. Mail gönderme işlemi, bir mail sunucuna bağlanma ya da bir web servis kullanma süreçlerinden geçeceği için zaman alacaktır fakat kullanıcının başarılı kayıt sayfasını görmek için mail gönderiminin tamamlanmasını beklemesine gerek yoktur. O nedenle mail gönderme işlemi bir mesaj kuyruk sistemine yazılır ve bir consumer tarafından gönderim arka planda gerçekleşir.
Continue reading PHP ile RabbitMQ Kullanımı

Cache Sistemlerinde “Dog-pile Effect” den Korunmak

Standart bir web uygulamasında, cache araçlarını kullanmak basit görünebilir. Bir değerin cache’de var olup olmadğı kontrol edilir, varsa değer alınır, yoksa yeniden üretilip daha sonraki isteklere sunulmak üzere cache’e yazılır. Fakat yüksek trafiğe sahip bir uygulamada, cache süresi bittiğinde aynı anda gelen istekler, cache’lenmiş içeriği eş zamanlı tazelemeye çalışabilirler. Bu da kullandığınız veri kaynağına (veritabanı, web servis vb..) extra yük getirecektir.

Continue reading Cache Sistemlerinde “Dog-pile Effect” den Korunmak

Twitter API ile Application-only Access Token Kullanımı

Twitter, kullanıcı hesaplarıyla birebir etkileşim sağlayan API endpoint’ler (örneğin tweet atmayı sağlayan statuses/update gibi) haricindeki işlemlerde kullanmanız için, Twitter uygulamanıza ait bir access token (bearer token) veriyor. Sadece bu token kullanılarak bir çok API işlemi yapılabilir. Bu sayede api rate limiti artırabiliriz. Örneğin tweet aramasında bir kullanıcaya ait access token ile 15 dakikada 180 api isteği yapabilirken, application token ile 450 istek yapabiliyoruz (limitler).

Aşağıdaki cURL komutu işe application access token’ınızı alabilirsiniz. consumerKey ve consumerSecret bilgilerinize uygulama detay sayfasından ulaşabilirsiniz.
Continue reading Twitter API ile Application-only Access Token Kullanımı

GitHub Web Hook ile Deployment

Git hosting olarak Github kullanılan projelerde, Github’a gönderilen her yeni commit’de bir web adresinin tetiklenmesini sağlayabilirsiniz. Service Hooks menüsü altında yer alan WebHook URLs sayfasından, kaynak kodda değişiklik olduğu zaman, önceden tanımlanmış adres(ler)e POST methoduyla, güncelleme bilgilerini içeren JSON-encoded data ile beraber istek gönderilir. Burada örnek içeriğini bulacağınız payload bilgisine bakarak isteğin Github’dan gelip gelmediğini kontrol edebiliriz.
Continue reading GitHub Web Hook ile Deployment