[]

Mysql update komutu fakat 1 dakika sonra

Konuların okunma sayısını artırmak için ilgili id okunduğu zaman update komutu ile hits hücresini güncelliyor +1 yapıyorum. fakat bunun anında olmasını istemiyorum. belirleyeceğim bir süre sonra update olmasını istiyorum. Sunucuyu yormamak adına da farklı çözümleri dinlemek isterim.

Teşekkürler.


 
bir tane process' e bu id' yi gonderebilirsin, process de update eder. ihtiyacin olan sey bir queue implementasyonu. rabbit mq, zero mq, redis' deki pubsub, vs. isine yarar.

edit: sanirim rabbit mq disinda schedule edemiyorsun gonderilen mesajlari. eger rabbit mq ile ugrasmak istemezsen update edilecek id' leri redis(ya da baska bir yere)' e yazip, arkada periyodik calisan bir cronjob ile de bu id' leri 1 arttirabilirsin.
  • sterimar  (24.05.15 14:27:57 ~ 14:37:01) 
vbulletin forum scripti de aynı tekniği kullanıyor. dediğin gibi daha sonradan cron job ile güncelliyor. tarih zaman da ayarlayabiliyorsun.

fakat daha pratik bir yol arayışındaydım. sanırım söylediğin şekilde olmalı. başka yolu yok gibi gözüküyor. trigger ile bir yan hücrede bulunan değerler çekilerek yapılabilir. konu okundukça yedek hücre aktif olur. trigger her saat yandaki hücre ile senkronize olur. bu istediğimi yapıyor aslında ama sunucuyu rahatlatmak yerine daha da kasıyorum sanki.

farklı yöntemleriniz varsa onları da dinlemek isterim sterimar.
  • kvlknctk  (24.05.15 14:47:12) 
map/reduce yapacaksın bunun için, 1 dakika sonra da update etsen her işlemi yine tek tek update edersen yine aynı yükü sağlamış olursun.

önce tüm kayıtları örnein mongodb'ye satır satır yazacaksın, ardından bir map/reduce çalıştırıp o kayıtları sayacaksın, sonuçları da başka bir tabloya yazacaksın ve ardından bir cronjob benzeri uygulama ile alıp her sayfayı toplam izlenmesine +20/+32 gibi rakamlarla update edeceksin ki işe yarasın, yoksa 30 adet +1 update çalışmanın 1 dakika önce yada sonra olmasının bir önemi yok.

redis yada benzeri bir queue implementasyonu bu iş için pek uygun değil tabii, map reduce destekleyen dağıtık çalışabilen bişi lazım sana.
  • selam  (24.05.15 15:10:26) 
evet, teker teker guncellemek yerine toplayip daha sonra her key icin bir defa guncellemek daha mantikli. bu durumda @selam' in dedigi yontem mantikli bence. eger mongodb kullanmak istemezsen redis ile de bu isi yapabilirsin. soyle ki:

her request geldigi zaman "rpush pageviews 1" diyerek sayfanin id' sini(bu ornekte 1) redis' deki bir liste kaydedersin. cronjob calistigi zaman "lrange pageviews 0 -1" diyerek butun page id' leri alip, dongu icerisinde toplarsin sonra da hangi sayfanin toplamda kac artacagini bir transaction icerisinde database' e gonderirsin. transaction bitince de lrange komutundan kac eleman geldiyse(165 mesela) "ltrim pageviews 0 165" yaparak ilk okudugun 165 kaydi redis' den silersin. sen redis' e sagdan ekleme yapip, soldan okudugun icin cronjob calistigi sirada eklenen kayitlari silmen gibi bir durum soz konusu olmaz.
  • sterimar  (24.05.15 18:05:53 ~ 20:26:13) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.