[PHP] cron na 10 sekund
 
blackmamba 11. jun 2009 13:00:23 Pridružen od:
4. mar 2008
559 objav
392 25 11
#1

Živjo,

rabil bi cron, ki bi na 10 sekund sparsal neko stran.

Ker dela cron samo na minutne intervale sem razmišljal da bi naredil php skripto, ki bi imela 6x funkcijo parsanja in vmes sleep(10).



Mislite da je lahko problem in se server preveč s časoma zabaše ker:

-parsanje traja cca 1 sekundo in potem 10s pavze = 11s

-potem čez 1 min bi cron ponovno zagnal skripto in ti tajmingi bi se lahko s časom začeli prekrivati.



Kako bi lahko na najboljši način naredil "cron" varjanto na 10 sekund?



Že v naprej se zahvaljujem za briljantne ideje :)


všeč(0) ni všeč(0) spam(0)
 
ledi 11. jun 2009 14:03:35 Pridružen od:
14. avg 2008
681 objav
325 223 14
#2

predno karkoli delaš se vprašaj če ti ne bojo IP zablokirali če jim boš na 10 sekund smetil povezavo!


všeč(0) ni všeč(0) spam(0)
 
Vini 11. jun 2009 14:08:28 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#3

Napiši si daemona v PHPju, na PHP konferenci je bilo lušno predavanje o tem, če te ni bilo tam, pa malo pogooglaj [php daemon].


všeč(0) ni všeč(0) spam(0)
 
HeXeR 11. jun 2009 14:12:29 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#4

Ledi:

predno karkoli delaš se vprašaj če ti ne bojo IP zablokirali če jim boš na 10 sekund smetil povezavo!




O'ja ... nekaterim lahko narediš 10k+ zahtevkov na dan (pa ne čez cel dan), pa nič ne ukrenejo ... ne hosting, ne lastnik strani :)


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
fatg 11. jun 2009 14:21:35 Pridružen od:
28. jan 2008
94 objav
73 2 0
#5

tako pogosto zahtevanje in parsanje strani je slaba praksa, krši netiketo in je sigurno rešljivo drugače. Lahko bi mu tudi rekli napad na neko spletno stran, tudi če se žrtev ne pritoži. :)


všeč(0) ni všeč(0) spam(0)
 
HeXeR 11. jun 2009 14:27:26 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#6

Ni sigurno rešljivo drugače ... sploh če moreš določeno število strani sparsati v omejenem času, kako boš potem rešil drugače?



Pritoži ali pa ne ... mogoče sploh ne ve, važno, da "žrtvi" page laufa pa je zadovoljna =D. Napad .. no ja, sej če vidiš, da je stran začela počasi delat boš pač parsal na 20 sekund al pa več, namesto 10 ... glede na to da hočeš sparsati do konca. Če bi pa rad "napadal" pa se malo potrudiš pa bo zadeva offline al pa kaki bandwidth limit exceeded ... =D


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
Roky 11. jun 2009 16:13:01 Pridružen od:
9. apr 2008
2506 objav
3240 335 107
#7

Zakaj pa rabiš ravno na 10 sekund, se vsebina RES tako hitro spreminja?


všeč(0) ni všeč(0) spam(0)
rok.meglic@gmail.com - 031 492 148
 
blackmamba 11. jun 2009 16:16:13 Pridružen od:
4. mar 2008
559 objav
392 25 11
#8

Enako stvar že parsam 1 leto in sicer tako, da uporabnik pošlje ajax request, server zadevo sparsa in pocachira v txt file, ki je v bistvu timestamp. In tako vsakič preverjam, če je trenutni timestamp večji za 10s od prejšnjega (cachiranega - 123423423.txt).

Zdaj bi pa rad, da to stvar naredi cron ne pa user client side ajax request.



vini: Si bom pogledal php deamon, thx

fatg: mislim, da ni možno drugače. (podatki, ki jih moram prikazovati na strani so na drugem strežniku, in tam se spreminjajo non stop, še 10s je preveč)


všeč(0) ni všeč(0) spam(0)
 
Vini 11. jun 2009 16:33:10 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#9

blackmamba, pa je tisti drugi strežnik pod tvojo kontrolo? Če je, bi lahko ob spremembi podatkov pushal vsebino na strežnik, kjer jo prikazuješ.


všeč(0) ni všeč(0) spam(0)
 
blackmamba 11. jun 2009 17:06:26 Pridružen od:
4. mar 2008
559 objav
392 25 11
#10

Pravzaprav imam na serverju neko skripto, ki se poveže z remote mysql-om na nek strežnik, kjer imam dostop samo do baze. Vedno bere iz iste tabele, kjer so non-stop frišni podatki.



Ta skripta ni v cronu, ampak jo uporabniki z javascriptom sprožijo vsakih 10s (prototype: ajax periodical updater).



Skripta najprej preveri ali je pocachiran file(123234324.txt) starejši od 10s. Če je, potem tega zbriše in naredi novega. V nasprotnem primeru ga samo prebere(ni povezave z bazo).



Zadeva dela že 1 in pol BP, procesor je ob navalu dopoldan cca 40-60% idle, drugače tudi 90%. Jaz bi pa to mal 'zoptimiziral' :)


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se