אומפֿולקומענע בילדער דורכן פּראָקסי: קאָנטראָלירט Netty'ס פֿאַרענדיקן פֿונעם שרײַבן
ווען בילדער קומען אומפֿולקומען דורכן פּראָקסי, פֿאָרשט אויב דער אָריגין פֿאַרמאַכט זײַן Netty קאַנאַל איידער דער אַסינכראָנער ענטפֿער־שרײַבן ענדיקט זיך.
אַ בילד אַרבעט איבער אַ גיכער דירעקטער פֿאַרבינדונג, אָבער איבער אַ פּאַמעלעכן פֿאָרויס־פּראָקסי איז עס אומפֿולקומען. אַ מעגלעכע סיבה איז, אַז דער אָריגין פֿאַרמאַכט די פֿאַרבינדונג ווען זײַן ענטפֿער ווערט נאָך געשריבן.
Netty I/O איז אַסינכראָן. אומקערן פֿון writeAndFlush מיינט ניט, אַז די אָפּעראַציע איז פֿאַרענדיקט. דערפֿאַר איז די אָרדענונג ניט זיכער פֿאַר אַן ענטפֿער וואָס האָט נאָך בייטן אין ריי:
ctx.writeAndFlush(response);
ctx.close();
ווען דער HTTP אויסטויש ווערט בײַ אַ כּוונה פֿאַרמאַכט נאָך זײַן לעצטן ענטפֿער־מעלדונג, פֿאַרבינד דאָס פֿאַרמאַכן מיט דער future פֿון יענעם שרײַבן:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
דער פֿראַגמענט פֿאַרזעצט, אַז דער ענטפֿער איז שוין ריכטיק אויפֿגעבויט און געראַמט. פֿאַר אַ סטרימירטן קערפּער ניצט דאָס פֿאַרענדיקן פֿון זײַן לעצטער מעלדונג, ניט דאָס שרײַבן פֿון די קעפּלעך. פֿאַר אַ באַשטענדיקער HTTP פֿאַרבינדונג לייגט ניט צו אַ פֿאַרמאַכן בלויז ווײַל אַן ענטפֿער איז פֿאַרענדיקט.
פֿאָרשט דעם דורכפֿאַל פֿון דער future ווי אַ טייל פֿון דער נאָרמאַלער פֿעלער־באַהאַנדלונג פֿון דער אַפּלאַקיישאַן. פֿאַרענדיקן שליסט איין דורכפֿאַל און אָפּזאָג, דערפֿאַר איז פֿאַרענדיקן אַליין ניט קיין באַשטעטיקונג פֿון דער פּרעזענטירונג.
דער נוצלעכער פֿאַרגלײַך איז די פֿולע ענטפֿער־לענג און דאָס שרײַב־רעזולטאַט אויף יעדן וועג. אַ פּראָקסי קען ענדערן די צײַטן גענוג כּדי אַנטפּלעקן אַן עקזיסטירנדיקן לעבנסציקלוס־פֿעלער; זײַן אָנוועזנהייט באַווײַזט ניט, אַז זײַן קאָמפּרעסאָר אָדער קאַש האָט אָפּגעוואָרפֿן די בייטן.