youngwolf
Kimlik Onayı Bekliyor
Banlı Kullanıcı
-
Üyelik
24.01.2018
-
Yaş/Cinsiyet
25 / E
-
Meslek
öğrenci
-
Konum
Denizli
-
Ad Soyad
O** A**
-
Mesajlar
208
-
Beğeniler
62 / 32
-
Ticaret
0, (%0)
merhaba arkadaşlar, php ve/veya veritabanı ile bir göreve süre vermek istiyorum .mesela ben bir olayı 1,5saniyede bir döndürsün istiyorum ama kullanıcı ekranı kapatınca da bu işlem devam edecek .kullanıcı tekrar girdiğinde , 26 kez tamamlandı ve 27'nciye 70saniye kaldı olarak yazabilmeliyim . bunu yapabilmem için hangi fonksiyon ve metodlara ihtiyacım var...?
-
Üyelik
19.06.2018
-
Yaş/Cinsiyet
28 / E
-
Meslek
Ağ ve bilgisayar sistemleri yö
-
Konum
Ankara
-
Ad Soyad
H** Ü**
-
Mesajlar
665
-
Beğeniler
80 / 270
-
Ticaret
0, (%0)
Hocam görev başlangıç tarihi saatini veritabanına kayıt ettirirsiniz , sonraki değerlerde şimdiki Zaman ile çıkartarak görevin süresinin geçip geçmediğini if yapısı ile kontrol ettirirsiniz.
Örnek :
Veritabanı : görevler tablosu (kullanıcı_id, başlangıç)
PHP : Göreval.php : sessiondan k.adi al , başlangıç süresini server saati ile kaydet.
PHP: Görev bitir.php : Veritabanindan k.adi ile başlangıç zamanını al , serverin zamanı ile çıkart sonuca göre if ile işlem yap.
Telefondan bukadar oluyor hocam umarım anlatabildim
1 kişi bu mesajı beğendi.
youngwolf
Kimlik Onayı Bekliyor
Banlı Kullanıcı
-
Üyelik
24.01.2018
-
Yaş/Cinsiyet
25 / E
-
Meslek
öğrenci
-
Konum
Denizli
-
Ad Soyad
O** A**
-
Mesajlar
208
-
Beğeniler
62 / 32
-
Ticaret
0, (%0)
Hocam bu tek islem ki zaten yuzlerce kullanıcı da bunu yapinca veritabani çöker:) yardimin için teşekkürler varmi başka taktik :)
-
Üyelik
19.04.2015
-
Yaş/Cinsiyet
26 / E
-
Meslek
Developer
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** E**
-
Mesajlar
821
-
Beğeniler
1 / 302
-
Ticaret
1, (%100)
Basit bir yol olarak jquery, ajax ile döngü halinde istek yapmak. Tablonda başlangıç, durum, bitiş, çalışıyor mu için sütunlar bulundurursun. Kullanıcı sekmeyi kapattığı zaman işi bu sefer sunucuda yürütmek için zaman aralığı sana kalmış bir cron job çalıştırırsın. Cron job'ın tetiklediği php dosyası veritabanını tarar, bitmemiş görevlere devam edersin. Kullanıcı kısa zamanda geri döndüğünde (belki cron daha çalışmamıştır), çalışıyor mu sütununa göre sonuç gösterir, işlem yaparsın veya devam eden bir görev için tahmini bitiş süresi hesaplayıp sayfayı yenileme yapıp biten sonucu gösterirsin. Basit bir algoritma, farklı yaklaşımlar sergilenebilir.
1 kişi bu mesajı beğendi.
no time for caution
mxaksoy
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
23.03.2018
-
Yaş/Cinsiyet
29 / E
-
Meslek
Webmaster
-
Konum
İstanbul Avrupa
-
Ad Soyad
M** A**
-
Mesajlar
1358
-
Beğeniler
482 / 344
-
Ticaret
3, (%100)
youngwolf çözüm şu şekilde (24 Saat Kontrolü):
$timeA = $mission_row['mission_time']; //Veri tabanına kaydedilen tarih
$timeB = date("d.m.Y H:i");
$timeDiff = strtotime($timeB) - strtotime($timeA);
if($timeDiff > 0){
Echo 'Geçti';
}else{
Echo 'Geçmedi';
}
-
Üyelik
11.05.2013
-
Yaş/Cinsiyet
32 / E
-
Meslek
Geliştirici
-
Konum
Malatya
-
Ad Soyad
E** K**
-
Mesajlar
3142
-
Beğeniler
60 / 764
-
Ticaret
5, (%100)
En güvenli yöntem arkadaşların dediği gibi veri tanında tutmaktır. Çok fazla veri tabanı şişireceğini sanmam. Bu tür işler için en iyisi gerçek zamanlı veri tabanlarıdır.
1 kişi bu mesajı beğendi.
-
Üyelik
11.10.2015
-
Yaş/Cinsiyet
29 / E
-
Meslek
Web Developer/Bilgisayar Müh.
-
Konum
Ankara
-
Ad Soyad
B** G**
-
Mesajlar
477
-
Beğeniler
34 / 135
-
Ticaret
7, (%100)
Her kullanıcının görev başlangıcını tutucaksın aldığı görevdede bir süre tutucaksın bu işlemi ekrana geri sayım javascript kodu ile yazıcaksın. Süre bittiğinde sayfanın görev yapıldı olarak görünmesini istiyorsan ve kullanıcı sistemde değilkende bunu yapıcaksan CRONJOBS ile dakikada bir kontrol edebilirsin. Arkada dakikada bir gerekli komutu çalıştırdığın bir PHP sayfası çalışıcak hepsi bu. Senin sisteminde 300 - 400 bin üye yoksa rahat ol veritabanı bunu kaldırır.
Bu tarz işlemlerde big data dediğimiz büyük veriler sizin hayalleriniz kadar az sayıda veriden oluşmuyor. O durumlar içinde veri yapılarını inceleyip linked list, stack yada queue kullanılıyor.
1 kişi bu mesajı beğendi.