Update Japanese translation for advanced/queues.ja.md

- Add missing Testing section with AsyncTestQueuesDriver documentation
- Add reference to Romain Pouclet's blog post about testing Vapor Queues
- Complete translation to match English version
This commit is contained in:
Lemo-nade-room 2025-06-18 22:09:37 +09:00
parent c66e86d9a8
commit 2dce7b8526
1 changed files with 31 additions and 6 deletions

View File

@ -86,7 +86,7 @@ app.queues.add(emailJob)
新しいキューワーカーを開始するには、`swift run App queues` を実行します。特定の種類のワーカーを実行する場合は、`swift run App queues --queue emails` と指定することもできます。 新しいキューワーカーを開始するには、`swift run App queues` を実行します。特定の種類のワーカーを実行する場合は、`swift run App queues --queue emails` と指定することもできます。
!!! tip !!! tip
ワーカーは本番環境で実行し続ける必要があります。長時間実行するプロセスを維持する方法については、ホスティングプロバイダーに従ってください。例えば、Heroku では、Procfile に `worker: Run queues` のように "worker" dyno を指定できます。これを設定すると、ダッシュボードのリソースタブや `heroku ps:scale worker=1`(または任意の dyno 数)でワーカーを開始できます。 ワーカーは本番環境で実行し続ける必要があります。長時間実行するプロセスを維持する方法については、ホスティングプロバイダーに相談してください。例えば、Heroku では、Procfile に `worker: Run queues` のように "worker" dyno を指定できます。これを設定すると、ダッシュボードのリソースタブや `heroku ps:scale worker=1`(または任意の dyno 数)でワーカーを開始できます。
### プロセス内でワーカーを実行 {#running-workers-in-process} ### プロセス内でワーカーを実行 {#running-workers-in-process}
@ -103,7 +103,7 @@ try app.queues.startScheduledJobs()
``` ```
!!! warning !!! warning
キューワーカーをコマンドラインまたはプロセス内ワーカー経由で起動しない場合、ジョブはディスパッチされません。 キューワーカーをコマンドラインまたはプロセス内ワーカー経由で起動しない、ジョブはディスパッチされません。
## `Job` プロトコル {#the-job-protocol} ## `Job` プロトコル {#the-job-protocol}
@ -156,7 +156,7 @@ struct EmailJob: AsyncJob {
`Payload` 型が `Codable` プロトコルを実装していることを確認してください。 `Payload` 型が `Codable` プロトコルを実装していることを確認してください。
!!! tip !!! tip
**Getting Started** の指示に従って、このジョブを設定ファイルに追加することを忘れないでください。 **はじめに** の指示に従って、このジョブを設定ファイルに追加することを忘れないでください。
## ジョブのディスパッチ {#dispatching-jobs} ## ジョブのディスパッチ {#dispatching-jobs}
@ -242,7 +242,7 @@ app.get("email") { req async throws -> String in
} }
``` ```
ジョブが `delay` パラメータの前にデキューされた場合、ドライバによってジョブが再キューされます。 ジョブが遅延パラメータの前にデキューされた場合、ドライバによってジョブが再キューされます。
### 優先度の指定 {#specify-a-priority} ### 優先度の指定 {#specify-a-priority}
@ -308,7 +308,7 @@ struct SendEmailCommand: AsyncCommand {
キューを指定しない場合、ジョブは `default` キューで実行されます。各キュータイプのワーカーを起動する手順については、**Getting Started** の指示に従ってください。 キューを指定しない場合、ジョブは `default` キューで実行されます。各キュータイプのワーカーを起動する手順については、**はじめに** の指示に従ってください。
## ジョブのスケジューリング {#scheduling-jobs} ## ジョブのスケジューリング {#scheduling-jobs}
@ -325,7 +325,7 @@ swift run App queues --scheduled
``` ```
!!! tip !!! tip
ワーカーは本番環境で実行し続ける必要があります。長時間実行するプロセスを維持する方法については、ホスティングプロバイダーに従ってください。例えば、Heroku では、Procfile に `worker: App queues --scheduled` と指定することで「worker」 dyno を指定できます。 ワーカーは本番環境で実行し続ける必要があります。長時間実行するプロセスを維持する方法については、ホスティングプロバイダーに相談してください。例えば、Heroku では、Procfile に `worker: App queues --scheduled` と指定することで「worker」 dyno を指定できます。
### `ScheduledJob` の作成 {#creating-a-scheduledjob} ### `ScheduledJob` の作成 {#creating-a-scheduledjob}
@ -447,3 +447,28 @@ app.queues.add(MyEventDelegate())
- [QueuesDatabaseHooks](https://github.com/vapor-community/queues-database-hooks) - [QueuesDatabaseHooks](https://github.com/vapor-community/queues-database-hooks)
- [QueuesDash](https://github.com/gotranseo/queues-dash) - [QueuesDash](https://github.com/gotranseo/queues-dash)
## テスト {#testing}
同期の問題を避け、決定論的なテストを確保するために、Queues パッケージは `XCTQueue` ライブラリとテスト専用の `AsyncTestQueuesDriver` ドライバーを提供しており、次のように使用できます:
```swift
final class UserCreationServiceTests: XCTestCase {
var app: Application!
override func setUp() async throws {
self.app = try await Application.make(.testing)
try await configure(app)
// テスト用のドライバーをオーバーライド
app.queues.use(.asyncTest)
}
override func tearDown() async throws {
try await self.app.asyncShutdown()
self.app = nil
}
}
```
詳細については、[Romain Pouclet のブログ記事](https://romain.codes/2024/10/08/using-and-testing-vapor-queues/)を参照してください。