Skip to content

Commit 48a9c08

Browse files
github-actions[bot]dunglasalexandre-dauboisCopilot
authored
docs: update translations (#2206)
Translation updates for: worker.md . --------- Signed-off-by: Alexandre Daubois <2144837+alexandre-daubois@users.noreply.github.com> Co-authored-by: dunglas <57224+dunglas@users.noreply.github.com> Co-authored-by: Alexandre Daubois <2144837+alexandre-daubois@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alexandre Daubois <alex.daubois@gmail.com>
1 parent d1fcf06 commit 48a9c08

8 files changed

Lines changed: 233 additions & 168 deletions

File tree

docs/cn/worker.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,13 @@ frankenphp php-server --worker /path/to/your/worker/script.php
3535
frankenphp php-server --worker /path/to/your/worker/script.php --watch="/path/to/your/app/**/*.php"
3636
```
3737

38+
此功能通常与[热重载](hot-reload.md)结合使用。
39+
3840
## Symfony Runtime
3941

42+
> [!TIP]
43+
> 以下部分仅在 Symfony 7.4 之前是必需的,因为 Symfony 7.4 引入了对 FrankenPHP worker 模式的原生支持。
44+
4045
FrankenPHP 的 worker 模式由 [Symfony Runtime Component](https://symfony.com/doc/current/components/runtime.html) 支持。
4146
要在 worker 中启动任何 Symfony 应用程序,请安装 [PHP Runtime](https://github.com/php-runtime/runtime) 的 FrankenPHP 包:
4247

@@ -67,9 +72,6 @@ docker run \
6772
<?php
6873
// public/index.php
6974

70-
// 防止客户端连接中断时 worker 脚本终止
71-
ignore_user_abort(true);
72-
7375
// 启动你的应用程序
7476
require __DIR__.'/vendor/autoload.php';
7577

@@ -78,9 +80,15 @@ $myApp->boot();
7880

7981
// 在循环外的处理器以获得更好的性能(减少工作量)
8082
$handler = static function () use ($myApp) {
81-
// 当收到请求时调用,
82-
// 超全局变量、php://input 等都会被重置
83-
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
83+
try {
84+
// 当收到请求时调用,
85+
// 超全局变量、php://input 等都会被重置
86+
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
87+
} catch (\Throwable $exception) {
88+
// `set_exception_handler` 仅在 worker 脚本结束时调用,
89+
// 这可能不是您所期望的,因此在此处捕获并处理异常
90+
(new \MyCustomExceptionHandler)->handleException($exception);
91+
}
8492
};
8593

8694
$maxRequests = (int)($_SERVER['MAX_REQUESTS'] ?? 0);
@@ -144,7 +152,7 @@ curl -X POST http://localhost:2019/frankenphp/workers/restart
144152
但是,如果 worker 脚本在短时间内继续以非零退出代码失败
145153
(例如,脚本中有拼写错误),FrankenPHP 将崩溃并出现错误:`too many consecutive failures`
146154

147-
可以在你的 [Caddyfile](config.md#caddyfile-配置) 中使用 `max_consecutive_failures` 选项配置连续失败的次数:
155+
可以在你的 [Caddyfile](config.md#caddyfile-config) 中使用 `max_consecutive_failures` 选项配置连续失败的次数:
148156

149157
```caddyfile
150158
frankenphp {
@@ -176,4 +184,3 @@ $handler = static function () use ($workerServer) {
176184
};
177185

178186
// ...
179-
```

docs/fr/worker.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,24 @@ docker run \
1919

2020
### Binaire autonome
2121

22-
Utilisez l'option --worker de la commande php-server pour servir le contenu du répertoire courant en utilisant un worker :
22+
Utilisez l'option `--worker` de la commande `php-server` pour servir le contenu du répertoire courant en utilisant un worker :
2323

2424
```console
2525
frankenphp php-server --worker /path/to/your/worker/script.php
2626
```
2727

28-
Si votre application PHP est [intégrée dans le binaire](embed.md), vous pouvez également ajouter un `Caddyfile` personnalisé dans le répertoire racine de l'application.
28+
Si votre application PHP est [intégrée dans le binaire](embed.md), vous pouvez ajouter un `Caddyfile` personnalisé dans le répertoire racine de l'application.
2929
Il sera utilisé automatiquement.
3030

31-
Il est également possible de [redémarrer le worker en cas de changement de fichier](config.md#surveillance-des-modifications-de-fichier) avec l'option `--watch`.
31+
Il est également possible de [redémarrer le worker en cas de changement de fichier](config.md#watching-for-file-changes) avec l'option `--watch`.
3232
La commande suivante déclenchera un redémarrage si un fichier se terminant par `.php` dans le répertoire `/path/to/your/app/` ou ses sous-répertoires est modifié :
3333

3434
```console
3535
frankenphp php-server --worker /path/to/your/worker/script.php --watch="/path/to/your/app/**/*.php"
3636
```
3737

38+
Cette fonctionnalité se combine très bien avec le [rechargement à chaud](hot-reload.md).
39+
3840
## Runtime Symfony
3941

4042
> [!TIP]
@@ -70,20 +72,23 @@ L'exemple suivant montre comment créer votre propre script worker sans dépendr
7072
<?php
7173
// public/index.php
7274

73-
// Empêcher la terminaison du script worker lorsqu'une connexion client est interrompue
74-
ignore_user_abort(true);
75-
7675
// Démarrer votre application
7776
require __DIR__.'/vendor/autoload.php';
7877

7978
$myApp = new \App\Kernel();
8079
$myApp->boot();
8180

82-
// En dehors de la boucle pour de meilleures performances (moins de travail effectué)
81+
// Déclarer le handler en dehors de la boucle pour de meilleures performances (moins de travail effectué)
8382
$handler = static function () use ($myApp) {
84-
// Appelé lorsqu'une requête est reçue,
85-
// les superglobales, php://input, etc., sont réinitialisés
86-
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
83+
try {
84+
// Appelé lorsqu'une requête est reçue,
85+
// les superglobales, php://input, etc., sont réinitialisés
86+
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
87+
} catch (\Throwable $exception) {
88+
// `set_exception_handler` est appelé uniquement lorsque le script worker se termine,
89+
// ce qui peut ne pas être ce que vous attendez, alors interceptez et gérez les exceptions ici
90+
(new \MyCustomExceptionHandler)->handleException($exception);
91+
}
8792
};
8893

8994
$maxRequests = (int)($_SERVER['MAX_REQUESTS'] ?? 0);
@@ -133,27 +138,23 @@ Le code du worker précédent permet de configurer un nombre maximal de requête
133138

134139
### Redémarrer les workers manuellement
135140

136-
Bien qu'il soit possible de redémarrer les workers [en cas de changement de fichier](config.md#surveillance-des-modifications-de-fichier),
141+
Bien qu'il soit possible de redémarrer les workers [en cas de changement de fichier](config.md#watching-for-file-changes),
137142
il est également possible de redémarrer tous les workers de manière élégante via l'[API Admin de Caddy](https://caddyserver.com/docs/api).
138-
Si l'administration est activée dans votre [Caddyfile](config.md#configuration-du-caddyfile), vous pouvez envoyer un ping
143+
Si l'administration est activée dans votre [Caddyfile](config.md#caddyfile-config), vous pouvez envoyer un ping
139144
à l'endpoint de redémarrage avec une simple requête POST comme celle-ci :
140145

141146
```console
142147
curl -X POST http://localhost:2019/frankenphp/workers/restart
143148
```
144149

145-
> [!NOTE]
146-
>
147-
> C'est une fonctionnalité expérimentale et peut être modifiée ou supprimée dans le futur.
148-
149-
### Worker Failures
150+
### Échecs des workers
150151

151152
Si un script de worker se plante avec un code de sortie non nul, FrankenPHP le redémarre avec une stratégie de backoff exponentielle.
152153
Si le script worker reste en place plus longtemps que le dernier backoff \* 2, FrankenPHP ne pénalisera pas le script et le redémarrera à nouveau.
153154
Toutefois, si le script de worker continue d'échouer avec un code de sortie non nul dans un court laps de temps
154155
(par exemple, une faute de frappe dans un script), FrankenPHP plantera avec l'erreur : `too many consecutive failures` (trop d'échecs consécutifs).
155156

156-
Le nombre d'échecs consécutifs peut être configuré dans votre [Caddyfile](config.md#configuration-du-caddyfile) avec l'option `max_consecutive_failures` :
157+
Le nombre d'échecs consécutifs peut être configuré dans votre [Caddyfile](config.md#caddyfile-config) avec l'option `max_consecutive_failures` :
157158

158159
```caddyfile
159160
frankenphp {
@@ -185,4 +186,3 @@ $handler = static function () use ($workerServer) {
185186
};
186187

187188
// ...
188-
```

docs/ja/worker.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,13 @@ PHPアプリが[バイナリに埋め込まれている](embed.md)場合は、
3535
frankenphp php-server --worker /path/to/your/worker/script.php --watch="/path/to/your/app/**/*.php"
3636
```
3737

38+
この機能は、[ホットリロード](hot-reload.md)と組み合わせてよく使用されます。
39+
3840
## Symfonyランタイム
3941

42+
> [!TIP]
43+
> 以下のセクションは、FrankenPHPワーカーモードのネイティブサポートが導入されたSymfony 7.4より前のバージョンでのみ必要です。
44+
4045
FrankenPHPのワーカーモードは[Symfony Runtime Component](https://symfony.com/doc/current/components/runtime.html)によってサポートされています。
4146
ワーカーでSymfonyアプリケーションを開始するには、FrankenPHP用の[PHP Runtime](https://github.com/php-runtime/runtime)パッケージをインストールします:
4247

@@ -67,30 +72,33 @@ docker run \
6772
<?php
6873
// public/index.php
6974

70-
// クライアント接続が中断されたときのワーカースクリプト終了を防ぐ
71-
ignore_user_abort(true);
72-
73-
// アプリを起動
75+
// アプリケーションを起動
7476
require __DIR__.'/vendor/autoload.php';
7577

7678
$myApp = new \App\Kernel();
7779
$myApp->boot();
7880

79-
// ループの外側にハンドラーを配置してパフォーマンスを向上(処理量を減らす
81+
// パフォーマンス向上のため、ループの外側にハンドラーを配置(処理を減らす
8082
$handler = static function () use ($myApp) {
81-
// リクエストを受信した際に呼び出され、
82-
// スーパーグローバルや php://input などがリセットされます。
83-
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
83+
try {
84+
// リクエストを受信すると呼び出され、
85+
// スーパーグローバル、php://inputなどがリセットされます。
86+
echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
87+
} catch (\Throwable $exception) {
88+
// `set_exception_handler`はワーカースクリプトが終了するときにのみ呼び出されるため、
89+
// 予期しない動作になる可能性があります。そのため、ここで例外をキャッチして処理します。
90+
(new \MyCustomExceptionHandler)->handleException($exception);
91+
}
8492
};
8593

8694
$maxRequests = (int)($_SERVER['MAX_REQUESTS'] ?? 0);
8795
for ($nbRequests = 0; !$maxRequests || $nbRequests < $maxRequests; ++$nbRequests) {
8896
$keepRunning = \frankenphp_handle_request($handler);
8997

90-
// HTTPレスポンスの送信後に何か処理を行います
98+
// HTTPレスポンス送信後に何らかの処理を実行
9199
$myApp->terminate();
92100

93-
// ページ生成の途中でガベージコレクタが起動する可能性を減らすために、ここでガベージコレクタを明示的に呼び出す
101+
// ページ生成中にガベージコレクタが起動する可能性を減らすため、ここでガベージコレクタを明示的に呼び出す
94102
gc_collect_cycles();
95103

96104
if (!$keepRunning) break;
@@ -178,4 +186,3 @@ $handler = static function () use ($workerServer) {
178186
};
179187

180188
// ...
181-
```

0 commit comments

Comments
 (0)