lostyazilim

php ile görev süresi oluşturma

16 Mesajlar 1.994 Okunma
lstbozum
wmaraci reklam

youngwolf 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...?
 

 

wmaraci
reklam

haliluunal haliluunal Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Ü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
youngwolf

kişi bu mesajı beğendi.

youngwolf 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 :)
 

 

Decimas Decimas WM Aracı Kullanıcı
  • Ü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.
youngwolf

kişi bu mesajı beğendi.

no time for caution
wmaraci
wmaraci

mxaksoy 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';
}
 

 

haliluunal haliluunal Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Ü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)

youngwolf adlı üyeden alıntı

Hocam bu tek islem ki zaten yuzlerce kullanıcı da bunu yapinca veritabani çöker:) yardimin için teşekkürler varmi başka taktik :)


Hocam mantık olarak böyle olucak tabiki veritabanı şişmesi için işlem sonunda veya sure sonunda gerekli veri silinecek veya farklı yollarla geliştirilebilir
youngwolf

kişi bu mesajı beğendi.

kelebek kelebek WM Aracı Kullanıcı
  • Ü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.
youngwolf

kişi bu mesajı beğendi.

BugraGulay BugraGulay <?php echo"It's Life"; ?> Kullanıcı
  • Ü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.
youngwolf

kişi bu mesajı beğendi.

youngwolf 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)
BugraGulay

Decimas adlı üyeden alıntı

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.

CRONJOB hakkinda hiçbir bilgim yok webde biraz arama yaptım karışık geldi neler yapmam gerek ?
kelebek , haliluunal eğer CRONJOBS olmassa dediklerinizi deniycem. Teşekkürler..
 

 

youngwolf 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)

mxaksoy adlı üyeden alıntı

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';
}

Hocam bu yöntem sanirim 1 sefer dönecek
 

 

wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al