WM Aracı

WM Aracı (https://wmaraci.com/forum/)
-   PHP (https://wmaraci.com/forum/php.html)
-   -   Veritabanında ki Değeri Sürekli Arttırmak (https://wmaraci.com/forum/php/veritabaninda-degeri-surekli-arttirmak-565378.html)

VoSToK 29 Mart 2019 15:17

Veritabanında ki Değeri Sürekli Arttırmak
 
Merhaba;

travian tarzı oyunlarda şu kadar saatte şu kadar üretim vs yapılıyor. Sürekli bunlar veritabınına nasıl kayıt ediliyor. Sürekli işlem yaptırmak sistemi kasmıyor mu? Nasıl yapılıyor?

hafselkarayel 29 Mart 2019 15:41

Bir şekilde kod çalıştırıp değerleri arttırmak gerekiyor. Sunucu için zor ama başka yol yok diye biliyorum.Bunun için sunucunuzda cron job özelliğinin olması lazım. Sonra her kullanıcı için çalışma süresi kaydetmeniz lazım, mesala a kullanıcısının değerleri 1 saatte bir güncellenecek, b kullanıcısının 2 saate bir... Bu verileri veritabanına kaydedeceksiniz. Sonra bir işlem dosyanızın olması gerekiyor, yani asıl komutun verileceği dosya, dosya çalıştığı zaman güncelleme zamanı gelen kullanıcı var mı kontrolü yaptırmak ve varsa verileri güncelle gibi komut vermeniz lazım. Bu işlem dosyasını da belirli aralıklarla çalıştırmanız gerekiyor. (Sunucunun cron job özelliği ile)

VoSToK 29 Mart 2019 16:54

hafselkarayel cevap için teşekkürler bu hakkında başka bilgileri olan var mı?

stk27 29 Mart 2019 17:28

VoSToK Tam emin değilim ama yapılan işlemlere göre tarihler tutulup o tarihler üzerinden anlık hesaplanıp kullanıcıya yansıtılıyordur .

serhat550 29 Mart 2019 17:46

cron dışında js ler ile yapabilir. bende o tarz sıfırdan bir yazılım yapıyorum ama sunucuyu hafifletmek adına baya uğraştım ve çözüm buldum :) ek olarak otomodlar içinde özel js yazdım
Alıntı:

hafselkarayel Adlı Üyeden Alıntı (Mesaj 3218426)
Bir şekilde kod çalıştırıp değerleri arttırmak gerekiyor. Sunucu için zor ama başka yol yok diye biliyorum.Bunun için sunucunuzda cron job özelliğinin olması lazım. Sonra her kullanıcı için çalışma süresi kaydetmeniz lazım, mesala a kullanıcısının değerleri 1 saatte bir güncellenecek, b kullanıcısının 2 saate bir... Bu verileri veritabanına kaydedeceksiniz. Sonra bir işlem dosyanızın olması gerekiyor, yani asıl komutun verileceği dosya, dosya çalıştığı zaman güncelleme zamanı gelen kullanıcı var mı kontrolü yaptırmak ve varsa verileri güncelle gibi komut vermeniz lazım. Bu işlem dosyasını da belirli aralıklarla çalıştırmanız gerekiyor. (Sunucunun cron job özelliği ile)


hafselkarayel 29 Mart 2019 17:51

Js konusunda neredeyse hiç bilgim yok. Js kodların çalışması için tarayıcıya ihtiyaç duyuyor. Siz nasıl yapıyorsunuz? Siteye giren kullanıcıların tarayıcılarını mı kullanıyorsunuz?

Alıntı:

serhat550 Adlı Üyeden Alıntı (Mesaj 3218527)
cron dışında js ler ile yapabilir. bende o tarz sıfırdan bir yazılım yapıyorum ama sunucuyu hafifletmek adına baya uğraştım ve çözüm buldum :) ek olarak otomodlar içinde özel js yazdım


VoSToK 29 Mart 2019 18:36

Bir mantığına oturtabilsem koklamaya başlayacağım da bir türlü mantık kuramadım.

Blacksheep 29 Mart 2019 20:21

Sürekli veritabanı kullanan işlemleri Veritabanı Sunucusu üzerinde yapmak daha mantıklıdır.Trigger kullanımını inceleyebilirsiniz. Bu uygulama sunucusunun yükünü hafifletecektir.

VoSToK 29 Mart 2019 23:33

Alıntı:

serhat550 Adlı Üyeden Alıntı (Mesaj 3218527)
cron dışında js ler ile yapabilir. bende o tarz sıfırdan bir yazılım yapıyorum ama sunucuyu hafifletmek adına baya uğraştım ve çözüm buldum :) ek olarak otomodlar içinde özel js yazdım

Js önerdiğiniz kütüphaneler var mı bu işlem için?

0ktay 30 Mart 2019 02:22

Dostum tonlarca basit yolu var, linuxta bir işlemi zamanlı çalıştırmak istersen linux crontab'ı araştırabilirsin.
İkincisi, basit ve hayat kurtaranlardan bir tanesi cpanel cronjob'dur.
Asp.net için QUARTZ.NET kütüphanesi mevcut.
gibi gibi, onlarca yolu var. :)

Sunucuyu yorma kısmına gelince, bu tamamen çalıştırılacak sayfaya bağlı.

Ayrıca yüksek topluluğa sahip oyunlarda sunucular canavar gibi olur çünkü sürekli arka planda çalışan zamanlanmış iş parçacıkları vardır.
Bu veriler RAM bellekte tutulur ve direkt olarak CPU ile iletişim halindedir, Yüksek düzeyde cronjob kullanımları için eşit seviyelerde RAM bellek kullanılması gerekir.

Basit PHP sayfaları için cpanel cronjob'u kullanmanı önerebilirim. :)



Birde mantığına gelicek olursak paintte bir görsel hazırladım umarım yardımcı olur :)
Resim Link: https://i.hizliresim.com/nQ3JOl.png
https://i.hizliresim.com/nQ3JOl.png


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şu anki Zaman: 17:38.

Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.