Connection closed
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne damit, die gleichzeitigen Anfragen über Workerman\Http\Client::post mit den gezeigten Einstellungen für Timeout und max_conn_per_addr zu reproduzieren, und vergleiche sequenzielle mit schnell aufeinanderfolgenden Übermittlungen. Prüfe die in der Issue beschriebene Konfiguration mit einem einzelnen Worker sowie den curl_multi-Vergleich. Als abgeschlossen gilt die Aufgabe, wenn die Ursache des Ergebnisses "Connection closed" identifiziert und das erwartete Verhalten bei gleichzeitigen Anfragen bestätigt wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I decided use http client in my worker.
Server part works on workerman Worker with one thread ( $worker->count = 1; ) Business logic requires it.
Part of http client here :
$http = new Workerman\Http\Client(
['max_conn_per_addr' => 128,
'keepalive_timeout' => 15,
'connect_timeout' => 30,
'timeout' => 30,
]);
$t=microtime(1);
$http->post('http://127.0.0.1:8080', ['command'=>'ping'],
function ($response) { echo "ok\n"; },
function ($exception) use($t){ echo ' exception ['.substr($exception,0,57).']</b> diff:'.(microtime(1)-$t).s"\n"; }
);
So, when i post queries sequentially all work fine and quick. But if i send multiple quries - http client very quickly (0.1sec) recieve exception "Connection closed". I was expect that it will wait answer from server up to 30 seconds, but not.
If I use another asynchronous method of client operation via curl_multi I don’t observe such server behavior.
May be i need some tune of psr7 ? Or do you have any smart thoughts on this topic?
Thank you for your product and attention to it.
- Vorherrschende Sprache
- PHP
- Sterne
- 55
- Forks
- 20
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus workerman-php/http-client
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 52/100
workerman-php/http-client#48 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
workerman-php/http-client#39 ·
-
TLS 1.3Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
workerman-php/http-client#32 ·
-
希望可以添加自动Cookies 管理功能Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
workerman-php/http-client#23 ·
-
如何忽略SSL 错误Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
workerman-php/http-client#18 · 1 Kommentar ·
Alle Issues in workerman-php/http-client
Ähnliche Issues
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug Feature: Kiosk
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Infrastructure: actions Module: zmscitizenapi Module: zmsentities php Type: Bug unit tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
it-at-m/eappointment#3480 ·
Maintainer antworten meist innerhalb von 1 Tag
-
HttpClient
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
CI: composer install fails — league/flysystem 1.x blocked by security advisory GHSA-cxf4-7mrp-vvprOffendevops type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag