mengguo 1年前

修改理由:

补充缺失部分

详细描述:

管理员,反馈问题:疑似系统 bug,我遇到2篇文档,一篇内容重复,这篇内容缺失。请关注!

相关信息:


此投稿状态为 标记为已读

标题修改:

+ 任务调度

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
8888
8989   // 分发任务到「heartbeats」队列及「sqs」连接...
9090   $schedule->job(new Heartbeat, 'heartbeats', 'sqs')->everyFiveMinutes();
91 
 91<a name="scheduling-shell-commands"></a>
 92### Scheduling Shell Commands
 93
 94The `exec` method may be used to issue a command to the operating system:
 95
 96   $schedule->exec('node /home/forge/script.js')->daily();
 97
 98<a name="schedule-frequency-options"></a>
 99### 调度频率选项
 100
 101我们已经看到了几个如何设置任务在指定时间间隔运行的例子。不仅如此,你还有更多的任务调度频率可选:
 102
 103<div class="overflow-auto">
 104
 105Method | Description
 106------------- | -------------
 107`->cron('* * * * *');` | 自定义 Cron 计划执行任务
 108`->everyMinute();` | 每分钟执行一次任务
 109`->everyTwoMinutes();` | 每两分钟执行一次任务
 110`->everyThreeMinutes();` | 每三分钟执行一次任务
 111`->everyFourMinutes();` | 每四分钟执行一次任务
 112`->everyFiveMinutes();` | 每五分钟执行一次任务
 113`->everyTenMinutes();` | 每十分钟执行一次任务
 114`->everyFifteenMinutes();` | 每十五分钟执行一次任务
 115`->everyThirtyMinutes();` | 每三十分钟执行一次任务
 116`->hourly();` | 每小时执行一次任务
 117`->hourlyAt(17);` | 每小时第十七分钟时执行一次任务
 118`->everyOddHour();` | 每奇数小时运行一次任务
 119`->everyTwoHours();` | 每两小时执行一次任务
 120`->everyThreeHours();` | 每三小时执行一次任务
 121`->everyFourHours();` |      每四小时执行一次任务
 122`->everySixHours();` | 每六小时执行一次任务
 123`->daily();` | 每天 00:00 执行一次任务
 124`->dailyAt('13:00');` | 每天 13:00 执行一次任务
 125`->twiceDaily(1, 13);` | 每天 01:00 和 13:00 各执行一次任务
 126`->twiceDailyAt(1, 13, 15);` | 每天 1:15 和 13:15 各执行一次任务
 127`->weekly();` | 每周日 00:00 执行一次任务
 128`->weeklyOn(1, '8:00');` | 每周一 08:00 执行一次任务
 129`->monthly();` | 每月第一天 00:00 执行一次任务
 130`->monthlyOn(4, '15:00');` | 每月第四天 15:00 执行一次任务
 131`->twiceMonthly(1, 16, '13:00');` | 每月第一天和第 十六天的 13:00 各执行一次任务
 132`->lastDayOfMonth('15:00');` | 每月最后一天 15:00 执行一次任务
 133`->quarterly();` | 每季度第一天 00:00 执行一次任务
 134`->quarterlyOn(4, '14:00');` | 每季度第四天 14:00 运行一次任务
 135`->yearly();` | 每年第一天 00:00 执行一次任务
 136`->yearlyOn(6, 1, '17:00');` | 每年六月第一天 17:00 执行一次任务
 137`->timezone('America/New_York');` | 为任务设置时区
 138
 139</div>
92140这些方法与额外的约束条件相结合后,可用于创建在一周的特定时间运行甚至更精细的计划任务。例如,在每周一执行命令:
93141
94142   // 在每周一 13:00 执行...
 
205253       return 'America/Chicago';
206254   }
207255
208 > **注意** 
 256> **注意**
209257> 请记住,有些时区会使用夏令时。当夏令时发生调整时,你的任务可能会执行两次,甚至根本不会执行。因此,我们建议尽可能避免使用时区来安排计划任务。
210258
211259<a name="preventing-task-overlaps"></a>
 
226274<a name="running-tasks-on-one-server"></a>
227275### 任务只运行在一台服务器上
228276
229 > **注意** 
 277> **注意**
230278> 要使用此功能,你的应用程序必须使用 `database`, `memcached`, `dynamodb`, 或 `redis` 缓存驱动程序作为应用程序的默认缓存驱动程序。此外,所有服务器必须和同一个中央缓存服务器通信。
231279
232280如果你的应用运行在多台服务器上,可能需要限制调度任务只在某台服务器上运行。 例如,假设你有一个每个星期五晚上生成新报告的调度任务,如果任务调度器运行在三台服务器上,调度任务会在三台服务器上运行并且生成三次报告,不够优雅!
 
331379            ->daily()
332380            ->emailOutputOnFailure('taylor@example.com');
333381
334 > **注意** 
 382> **注意**
335383> `emailOutputTo`, `emailOutputOnFailure`, `sendOutputTo` 和 `appendOutputTo` 是 `command` 和 `exec` 独有的方法。
336384
337385<a name="task-hooks"></a>