/ / ako spustiť php po dokončení aktuálneho skriptu -

ako spustiť php, keď aktuálny skript končí - php

ako spustiť php, keď aktuálny skript dokončí použitie curl? nemôžem použiť shell alebo set_time_limit na vytvorenie slučky skriptu.

ÚPRAVA:Chcem byť schopný použiť curl na volanie rovnakého skriptu, ale keď použijem curl_exec, nechcem, aby skript počkal, kým curl skončí, chcem iba, aby zavolal stránku a pokračoval bez toho, aby som čakal na dokončenie .

EDIT:

pomocou tohto kódu na začiatku skriptu

ignore_user_abort(true);
header("Content-Length: 0");
header("Connection: close");
flush();

potom pomocou zvlnenia, aby sa skript nazval sám, funguje v systéme Windows, ale v systéme Linux to nerobí, chcem, aby zvlnenie zavolalo stránku a nečakalo na odpoveď

Vďaka

odpovede:

3 pre odpoveď č. 1

Chcete byť schopní spustiť požiadavku CURL bez toho, aby ste na ňu čakali.

Za normálnych okolností začnete nové vlákno, v ktorom sa spustí požiadavka CURL, ale PHP nemá podporu pre viacvláknové spracovanie.

s popen alebo proc_open, môžete spustiť proces na pozadí, pokiaľ ho máte povolené. Môžete spustiť skript CLI PHP a vykonať svoju požiadavku CURL.

Ďalším nápadom je iba napísať požiadavku do tabuľky DB a každých X minút nechať urobiť prieskum cron CLI skriptu v tejto tabuľke a vykonať akúkoľvek čakajúcu požiadavku.


1 pre odpoveď č. 2

Našiel :

pridanie tohto na začiatok skriptu:

ignore_user_abort(true);
header("Content-Length: 256");
header("Connection: close");
echo(str_repeat(" ",256));
@ob_flush();
@flush();
@ob_end_flush();

potom zavolajte tento 1_script z iného 2_script cezcurl umožňuje druhému skriptu 2_script dokončiť proces bez čakania na dokončenie skriptu 1_script! . iba to, že zvlnenie neprečíta hlavičku „connection: close“ pred prijatím 256 bajtov, takže ich pošleme cez medzery :)