T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 94
Reģistrētie lietotāji online: 0
Viesi online: 94
Ir šāds koda gabals un tādā veidā ar foreach es apstrādāju apmēram 100 serverus, bet tas sankāk ļoti lēni. Ar šo skriptu es pārbaudu vai uz tās IP adreses ir ieslēgts spēļu serveris.
$telnet=@fsockopen($ip,$ports,$errno,$errstr,5);
if (!$telnet) {
$online="ir onlainaa";
}
else
{
$online="nav onlainaa";
}
Varbūt ir kāds efektīvāks veids?
nez. tur diezko daudz pasā kodā es neredzu ko labot.
varbū vienīgi 5 sekunžu timeouts ir nedaudz overkills.
Tu tam pieiet vari no citas puses.
Es tava vietā uzliktu divus scriptus conttab'ā (katrai OS līdzīga fiška ir .. izgooglēsi). Pirmais skripts check_online_servers.php palaižas vienreiz minūtē (jā zinu ka ja visi nebūs online sanāks pārklāšanās .. turpini lasīt) un otru check_offline_servers.php, kas palaižas ik pēc 10 minūtēm.
Tālāk tev ir datubāze kas satur servera nosaumu, severa adresi un statusu (1 online , 0 offline) . Pirmais scripts iet cauri visiem ar statusus 1, otrais - visiem ar 0.
Vēl tev vajag divus failus: online_script.pid un offline_script.pid
php tev ir jāuzraksta apmēram šāds kods (slinkums rakstīt īstu kodu , pietiks a pseido) :
ja ( online_script.pid satur 0 ) sākt
online_script.pid ierakstīt 1
piespēgties DB
no DB paprasīt visus kur status = 1
katram rezultātam no visiem rezltātiem sākt
atvēt soketu rezultātu
izdevās ? => nolasīt datus
neizdevās ? => atzīmēt statusu = 0
beigt
aizvērt DB
online_script.pid ierakstīt 0
beigt
Nu kaut kā šitā.
skripts jau tiek laists katru minūti (caur CRON)
EDIT: ar 1 sek. uzreiz lieta raitāk aizgāja :) vai ieksh PHP nevar uzlikt vērtību, piemēram, 0.5 nevis 1? Jo tiek pingotas IP adreses, kas atrodas Latvijā...
http://lv2.php.net/manual/en/function.fsockopen.php
resource fsockopen (
string $host [, int $port [, int &$errno [, string &$errstr [, float $timeout ]]]]
)
KA tu tiešām nezini kas ir http://php.net ?
Varbūt noder:
http://lv.php.net/manual/en/function.stream-set-timeout.php
TB Tu vispār vari nelikt to timeout tam fsockopen.
mefisto, es tieshi runaaju par to $timeout- vai tas var buut, piemeeram 0.005? :)
cik es sapratu, tad nu galiigi nepatika nevienam dizaina augsha.
kaa patiik jaunais koncepts dizaina virsdaļai?
Par timeout .. em .. ja tu nezini ko nozīmē 'float' , tad tev nevajadzētu vispār ap mājaslapām grābstīties.
Ja godīgi? Tā lapa izskatās drausmīgi.
Es pat nezinu ko tur var labot. Ja tas būtu zirgs, es ieteiktu to nošaut.
Tu taču to nedari uz katru lapas pieprasījumu?
Taisi atsevišķu skriptu, kas pārbauda un laid to automātiski(cron, sheduled tasks) ik pēc laika un rezultātus kaut kur pieglabā. Lapā parādi tikai šo pieglabāto informāciju.