php 程序重复执行命令,Laravel定时任务重复执行

901ab35c14afb1416f939b916f9431cf.png

动漫人物

问题已经解决: 参考@aaronwu的回答

1、storage的权限以及是否有权限touch用于schedule的互斥文件; 2、在任务执行出sleep多秒,多次执行php artisan schedule:run,查看schedule互斥文件是否生成。

首先检查了权限没问题,有写权限没问题。其次检查了schedule互斥文件是否生成,好吧没有,有写权限然后没有生成文件,猜想是写互斥文件的地方以后问题。

File:\vendor\laravel\framework\src\Illuminate\Console\Scheduling\Event.php这个文件可以看到互斥锁文件所在的目录和名称。我的是:framework/schedule-755d6620f1985cc92ffef6bd535af9a0f3354c3d

public function mutexName()

{

return 'framework'.DIRECTORY_SEPARATOR.'schedule-'.sha1($this->expression.$this->command);

}

然后查看源码看到互斥锁是使用的系统的缓存服务。猜想是缓存服务出了问题。然后查看缓存的配置文件,发现之前配置的缓存驱动CACHE_DRIVER=array修改成file之后就可以了。File:\vendor\laravel\framework\src\Illuminate\Console\Scheduling\CacheMutex.php

/**

* Create a new overlapping strategy.

*

* @param \Illuminate\Contracts\Cache\Repository $cache

* @return void

*/

public function __construct(Cache $cache)

{

$this->cache = $cache;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值