人称统一,链接错误,删除多余空格

修改理由:
相关信息:
- 类型:文档文章
- 文章: 任务调度
- 文档: 《Laravel 10 中文文档(10.x)》
此投稿由 tomcath 在 1年前 合并。
标题修改:
内容修改:
Old | New | Differences |
---|---|---|
1 | ||
2 | 1 | # 任务调度 |
3 | 2 | |
4 | 3 | - [简介](#introduction) | … | … |
51 | 50 | } |
52 | 51 | } |
53 | 52 | |
54 | ||
55 | ||
56 | 53 | 除了调用闭包这种方式来调度外,你还可以调用 [可调用对象](https://secure.php.net/manual/en/language.oop5.magic.php#object.invoke)。 可调用对象是简单的 PHP 类,包含一个 `__invoke` 方法: |
57 | 54 | |
58 | 55 | $schedule->call(new DeleteRecentUsers)->daily(); | … | … |
92 | 89 | // 分发任务到「heartbeats」队列及「sqs」连接... |
93 | 90 | $schedule->job(new Heartbeat, 'heartbeats', 'sqs')->everyFiveMinutes(); |
94 | 91 | |
95 | ||
96 | ||
97 | 92 | 这些方法与额外的约束条件相结合后,可用于创建在一周的特定时间运行甚至更精细的计划任务。例如,在每周一执行命令: |
98 | 93 | |
99 | 94 | // 在每周一 13:00 执行... | … | … |
140 | 135 | ->hourly() |
141 | 136 | ->days([0, 3]); |
142 | 137 | |
143 | ||
144 | ||
145 | 138 | 不仅如此,你还可以使用 `Illuminate\Console\Scheduling\Schedule` 类中的常量来设置任务在指定日期运行: |
146 | 139 | |
147 | 140 | use Illuminate\Console\Scheduling\Schedule; | … | … |
191 | 184 | ->daily() |
192 | 185 | ->environments(['staging', 'production']); |
193 | 186 | |
194 | ||
195 | ||
196 | 187 | <a name="timezones"></a> |
197 | 188 | ### 时区 |
198 | 189 | … | … |
230 | 221 | |
231 | 222 | $schedule->command('emails:send')->withoutOverlapping(10); |
232 | 223 | |
233 | ||
234 | ||
235 | 224 | 上面这种场景中,`withoutOverlapping` 方法使用应用程序的 [缓存](/docs/laravel/10.x/cachemd) 获取锁。如有必要,可以使用`schedule:clear cache` Artisan命令清除这些缓存锁。这通常只有在任务由于意外的服务器问题而卡住时才需要。 |
236 | 225 | |
237 | 226 | <a name="running-tasks-on-one-server"></a> | … | … |
266 | 255 | ->onOneServer(); |
267 | 256 | ``` |
268 | 257 | |
269 | ||
270 | ||
271 | 258 | 如果你使用闭包来定义单服务器作业,则必须为他们定义一个名字 |
272 | 259 | |
273 | 260 | ```php | … | … |
277 | 264 | ->onOneServer(); |
278 | 265 | ``` |
279 | 266 | |
280 | ||
281 | 267 | <a name="background-tasks"></a> |
282 | 268 | ### 后台任务 |
283 | 269 | … | … |
308 | 294 | * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 |
309 | 295 | ``` |
310 | 296 | |
311 | ||
312 | ||
313 | 297 | <a name="running-the-scheduler-locally"></a> |
314 | 298 | ## 本地运行调度程序 |
315 | 299 | … | … |
364 | 348 | // 任务已经执行。。。 |
365 | 349 | }); |
366 | 350 | |
367 | ||
368 | ||
351 | ||
352 | ||
369 | 353 | 使用 `onSuccess` 和 `onFailure` 方法,你可以决定在调度任务成功或者失败运行代码。失败表示 Artisan 或系统命令以非零退出码终止: |
370 | 354 | |
371 | 355 | $schedule->command('emails:send') | … | … |
414 | 398 | ->pingOnSuccess($successUrl) |
415 | 399 | ->pingOnFailure($failureUrl); |
416 | 400 | |
417 | ||
418 | ||
401 | ||
402 | ||
419 | 403 | 所有 ping 方法都依赖 Guzzle HTTP 库。通常,Guzzle 已在所有新的 Laravel 项目中默认安装,不过,若意外将 Guzzle 删除,则可以使用 Composer 包管理器将 Guzzle 手动安装到项目中: |
420 | 404 | |
421 | 405 | ```shell | … | … |
425 | 409 | <a name="events"></a> |
426 | 410 | ## 事件 |
427 | 411 | |
428 | 如果需要, | |
412 | 如果需要,你可以监听调度程序调度的 [事件](/docs/laravel/10.x/eventsmd)。通常,事件侦听器映射将在你的应用程序的 `App\Providers\EventServiceProvider` 类中定义: | |
429 | 413 | |
430 | 414 | /** |
431 | 415 | * 应用的事件监听器映射 | … | … |
453 | 437 | 'App\Listeners\LogScheduledTaskFailed', |
454 | 438 | ], |
455 | 439 | ]; |
440 | ||
456 | 441 | |
457 |