Autor Zpráva
et9
Profil
Dobrý den mám script "robota", který mi tahá z ostatních stránek údaje. Tento script pouštím přes normální stránku. Ve scriptu mám ajax funkce, které mi aktualizují data z jiných stránek na kterých se provádí script. Když to pustím normálně v browseru. Tak script normálně funguje, data se zapisují do db atd... jenže když tento script spustí Cron tak jako by neběžel. Nic nefunguje a nic se nezapisuje do databáze. Nedá se nějak udělat aby ten Cron to spouštěl normálně v browseru i s ajaxem atd...??
johnl
Profil
Myslém že nedá, CRON spustí pouze php script, s jeho výstupem (tedy v tvém případě javascriptem), už nijak dál nepracuje..
et9
Profil
No právě já mám script: status.php kde mám časovač v javascriptu který každých 5 sekund spustí script robot.php s jinými proměnými a ten když to spustím cronem tak se nevykoná ten robot.php.
johnl
Profil
Nějakým způsobem musíš robot.php avolat přes PHP.. ;))
MunzarM
Profil
Ahoj
Určitě by to šlo přes browser, třeba opera umí načítat v intervalu od 5s po 30 min...
Jinak bez browseru stejně JavaScript nespustíš, musel bys tu funkčnost přepsat do PHP.
meris
Profil
tak teoreticky by šlo udělat cron na spouštění selenia.
Mastodont
Profil
Ve scriptu mám ajax funkce, které mi aktualizují data z jiných stránek na kterých se provádí script. Když to pustím normálně v browseru. Tak script normálně funguje, data se zapisují do db
Nechápu, proč všechny výpočty nemohou být přímo v robot.php.
et9
Profil
Mastodont:
Protože takhle mi to vypisuje stav kolik už bylo stáhnutých atd... a mají tam taky ochranu že nemohu stahovat moc dat na jednou (while) tak to musím dělat pomocí javascriptu že před vykonáním dalšího scriptu robot.php počká třeba 2 s a pak načte robot.php pokaždé s jinýma proměnnýma. Proto toto nepůjde jenom v php
Keeehi
Profil
et9:
ale půjde
get_headers("http://example.com/robot.php?parametr=1");
sleep(2);
get_headers("http://example.com/robot.php?parametr=2");
Místo get_headers se dá použít file_get_context (adresa musí být s http) nebo curl. Záleží na nastavení servru a na tom, co potřebuješ.
et9
Profil
a když to mám ve while??
Keeehi
Profil
et9:
a když to mám ve while??
A co? Máš s tím nějaký problém? Jestli ano, tak jsi o něm zapomněl napsat.

A jestli ti šlo o toto:
$p=1;
while($p<=10){
    get_headers("http://example.com/robot.php?parametr=$p");
    sleep(2);
    $p++;
}
Tak se nad sebou zamysli a vrať se k základům.
et9
Profil
Ano toto vím ale zdá se mi že mě ta funkce sleep nějak u toho nefunguje dá se nějak zjistit jestli funguje nebo ne?
Keeehi
Profil
et9:
Tak si změř čas běhu scriptu (Example 2).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: