该功能为定时分发节点
即 定时执行脚本,脚本内含更新分发节点的功能
该功能需要`MySQL5.7`以上的版本
该任务只针对`image`表内`is_valid`字段值为`0`的记录
原因:图片失效后图片会被设置`is_valid`字段值为`1`
失效的图片就没有执行分发的必要了
如果需要重置`is_valid`字段值,可以执行以下操作
* 后台缓存管理->刷新全部图片分发识别缓存
### 开始
首先解释一下cron配置信息
配置文件地址:`根目录/.env`
![](https://img.kancloud.cn/3b/ac/3bac59ca4c0ebfa7d11ebf15511589d6_730x277.png)
```
#任务运行间隔时间
IMAGEUPDATE_TIME=30
#单次任务运行更新图片个数
IMAGEUPDATE_LIMIT=3
#节点标识
IMAGEUPDATE_API_TYPE=ali,toutiao
```
**实际操作时请去除注释**
### 配置好之后我们就可以开始了
1. 看一下这个图片的信息
![](https://img.kancloud.cn/29/49/29499284d60485d871a7fb1551ef3019_1076x502.png)
> 运行任务有两种模式
`web`和 `命令行`,推荐`命令行`模式
#### web
* [ ] web端运行需要配置超级令牌鉴权,防止恶意请求
后台->其他->超级令牌
![](https://img.kancloud.cn/58/f8/58f8e60c79cbd7e00434aff7baf39e52_709x569.png)
> 访问地址`你的域名`+`cron/imageUpdate?token=`+`超级令牌`
![](https://img.kancloud.cn/16/12/1612967d4e047a36c791af2577564001_943x262.png)
![](https://img.kancloud.cn/6d/94/6d946966d4e64a208beb063f18456668_1098x593.png)
#### 命令行
> 重新来张图片
![](https://img.kancloud.cn/47/c1/47c199ff8c0199bf4a7c5ab84bba766b_1046x581.png)
进入网站目录
![](https://img.kancloud.cn/df/7a/df7a26ab5ae17cad945e85974c79030a_513x95.png)
我使用`screen`演示
```
#查看是否安装 screen
screen -v
#安装screen
yum -y install screen
```
![](https://img.kancloud.cn/92/6a/926a99651c61c72769a3c80bbc509589_640x280.png)
* [ ] 执行任务运行命令
```
php think ImageUpdate start
```
![](https://img.kancloud.cn/18/1b/181b73cdf9121ed7f8fdfffb821293d2_543x88.png)
![](https://img.kancloud.cn/2f/75/2f75e714312934cc6084fe3ef817eb56_859x102.png)
> 以上这种情况说明没有开启需要的函数
> 将`pcntl_`开头的禁用函数全部删除
![](https://img.kancloud.cn/ea/6c/ea6cac51d396ae92129658788defd5ff_557x443.png)
* [ ] 再次执行命令
```
php think ImageUpdate start
```
![](https://img.kancloud.cn/bf/61/bf61234f0f1afd005f229f012e47569c_600x308.png)
![](https://img.kancloud.cn/b4/03/b403f59a6c150b55a9d5c17ba09b86a3_1048x482.png)
### 日志查看
也可以打开`runtime/log/`目录查看运行日志
![](https://img.kancloud.cn/94/99/9499a80314884b005b7ec61d5053f317_683x184.png)
### 说明
* 当前任务会根据`update_time`也就是更新时间来排序,每次更新后会更新`update_time`
* 定时任务不会重复更新已有节点