From 7bfb3d8720206270aec4a409ed2716e79fc058e0 Mon Sep 17 00:00:00 2001 From: coderltf <48883423+coderltf@users.noreply.github.com> Date: Thu, 25 Apr 2024 01:46:23 +0800 Subject: [PATCH] update translation in zh-CN (#512) --- docs/guide-zh-CN/retryable.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/guide-zh-CN/retryable.md b/docs/guide-zh-CN/retryable.md index 738cb1916c..34f139e982 100644 --- a/docs/guide-zh-CN/retryable.md +++ b/docs/guide-zh-CN/retryable.md @@ -1,10 +1,10 @@ 错误与重复执行 ========================= -在作业处理期间可以抛出异常。 当请求的服务和外部资源不可用时,由于代码编写的比较糟糕而导致的内部错误。 -在第二种情况下,可以在一段时间后重新尝试这个作业。 +作业的执行可能会失败。这可能是由于内部错误造成的,这些错误是由编写不当的代码导致的,应该首先修复。但是,它们也可能由于外部问题(例如服务或资源不可用)而失败。这可能会导致异常或超时。 +在后一种情况下,最好能够在一段时间后重试作业。有几种方法可以做到这一点。 -有几种方法可以做到这一点。 +>注意:下面描述的 ttr 功能需要安装 [PHP Process Control (pcntl)](https://www.php.net/manual/en/book.pcntl.php) 扩展,并且 worker 命令必须使用 --isolate 选项(默认启用)。 重试选项 ------------- @@ -21,7 +21,12 @@ ], ``` - `ttr` 选项设置了在队列中保留工作的时间。如果一份作业在这段时间没有执行,它将返回队列进行重试。 + `ttr` 选项设置了作业必须成功完成的秒数。因此,可能会发生两件事来使工作失败: + 1. 作业在`ttr`结束之前发生异常 + 2. 完成作业所需的时间将比 ttr 长(超时),工作线程停止作业执行 + +在这两种情况下,作业都将发送回队列进行重试。但请注意,在第一种情况下,即使作业在运行后立即停止,也不会立即重试,要等到`ttr`"用完"。也就是说,在将作业发送回队列之前,必须经过剩余的 ttr 秒数。 + `attempts` 选项设置了最大的尝试次数。如果尝试已经结束,作业作还没有完成,它将从队列中移除。 这种将全局设置队列中的所有作业,如果您需要为多个作业进行不同的设置可以使用, @@ -30,7 +35,7 @@ 重试作业接口 ---------------------- -Separate control of retry is implemented by `RetryableJobInterface` 接口。 示例: +为了更好地控制重试逻辑,作业可以实现 `RetryableJobInterface` 接口。 示例: ```php class SomeJob extends BaseObject implements RetryableJobInterface @@ -85,9 +90,9 @@ Yii::$app->queue->on(Queue::EVENT_AFTER_ERROR, function (ExecEvent $event) { 限制 ------------ -完全支持 [Beanstalk], [DB], [File] 和 [Redis] 驱动程序的重试工具。 -[Sync] 驱动不会重试失败的工作 [Gearman] 不支持重试。 -[RabbitMQ] 基本版支持,但重试编号无法得到。 +[Beanstalk], [DB], [File] 和 [Redis] 驱动程序实现了对可重试作业的完全支持。 +[Sync] 驱动不会重试失败的作业 [Gearman] 不支持重试作业。 +[RabbitMQ] 只有其基本的可重试支持,其中无法设置尝试次数。 [Beanstalk]: driver-beanstalk.md [DB]: driver-db.md @@ -95,4 +100,4 @@ Yii::$app->queue->on(Queue::EVENT_AFTER_ERROR, function (ExecEvent $event) { [Redis]: driver-redis.md [Sync]: driver-sync.md [Gearman]: driver-gearman.md -[RabbitMQ]: driver-amqp.md \ No newline at end of file +[RabbitMQ]: driver-amqp.md