第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Laravel定時(shí)任務(wù)重復(fù)執(zhí)行

Laravel定時(shí)任務(wù)重復(fù)執(zhí)行

PHP
慕容708150 2019-03-11 11:36:19
Laravel定時(shí)任務(wù)執(zhí)行的命令的時(shí)間不確定,我根據(jù)文檔添加了withoutOverlapping(),但是好像沒有生效 開發(fā)環(huán)境:windows 10, laradock ,Laravel 5.4.36 相關(guān)代碼 kernel的代碼 $schedule->command('produce:email')->withoutOverlapping(); 命令的代碼 public function handle() { $name = mt_rand(10000,99999); Log::info($name . ':開始運(yùn)行時(shí)間'.date('Y-m-d H:i:s')); $this->parseAppName(); $this->createQueue(); arsort($this->queue); if(count($this->queue) <= 0){ return ; } foreach ($this->queue as $key => $queue) { $this->getHistoryId($key,$queue['filter']); $this->executeAdd($key,$queue); } Log::info($name .':結(jié)束運(yùn)行時(shí)間'.date('Y-m-d H:i:s')); } 輸出的日志文件如下: 80781任務(wù)結(jié)束前系統(tǒng)新開了8個(gè)任務(wù) [2018-07-10 03:23:18] local.INFO: 80781:開始運(yùn)行時(shí)間2018-07-10 03:23:18 [2018-07-10 03:24:07] local.INFO: 91189:開始運(yùn)行時(shí)間2018-07-10 03:24:07 [2018-07-10 03:25:05] local.INFO: 73828:開始運(yùn)行時(shí)間2018-07-10 03:25:05 [2018-07-10 03:26:09] local.INFO: 96934:開始運(yùn)行時(shí)間2018-07-10 03:26:09 [2018-07-10 03:27:06] local.INFO: 79930:開始運(yùn)行時(shí)間2018-07-10 03:27:06 [2018-07-10 03:28:13] local.INFO: 39674:開始運(yùn)行時(shí)間2018-07-10 03:28:13 [2018-07-10 03:29:06] local.INFO: 44935:開始運(yùn)行時(shí)間2018-07-10 03:29:06 [2018-07-10 03:30:16] local.INFO: 40087:開始運(yùn)行時(shí)間2018-07-10 03:30:16 [2018-07-10 03:31:05] local.INFO: 42935:開始運(yùn)行時(shí)間2018-07-10 03:31:05 [2018-07-10 03:31:26] local.INFO: 91189:結(jié)束運(yùn)行時(shí)間2018-07-10 03:31:26 [2018-07-10 03:31:26] local.INFO: 80781:結(jié)束運(yùn)行時(shí)間2018-07-10 03:31:26
查看完整描述

3 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

https://img1.sycdn.imooc.com//5c8f3f3b0001019e08000526.jpg

https://img1.sycdn.imooc.com//5c8f3f3c0001281207470165.jpg

我測試了一下是正常的, 你的輸出有可能是舊程序的輸出
可以試著將cron停了, 過一段時(shí)間后再啟動排除干擾.

查看完整回答
反對 回復(fù) 2019-03-18
?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

因?yàn)槭莣ithoutOverlapping,所以考慮以下幾個(gè)方面
1、storage的權(quán)限以及是否有權(quán)限touch用于schedule的互斥文件;
2、在任務(wù)執(zhí)行出sleep多秒,多次執(zhí)行php artisan schedule:run,查看schedule互斥文件是否生成。

查看完整回答
反對 回復(fù) 2019-03-18
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

問題已經(jīng)解決:
參考@aaronwu的回答

1、storage的權(quán)限以及是否有權(quán)限touch用于schedule的互斥文件;
2、在任務(wù)執(zhí)行出sleep多秒,多次執(zhí)行php artisan schedule:run,查看schedule互斥文件是否生成。

首先檢查了權(quán)限沒問題,有寫權(quán)限沒問題。
其次檢查了schedule互斥文件是否生成,好吧沒有,有寫權(quán)限然后沒有生成文件,猜想是寫互斥文件的地方以后問題。

File:\vendor\laravel\framework\src\Illuminate\Console\Scheduling\Event.php
這個(gè)文件可以看到互斥鎖文件所在的目錄和名稱。
我的是:framework/schedule-755d6620f1985cc92ffef6bd535af9a0f3354c3d
public function mutexName()
    {
        return 'framework'.DIRECTORY_SEPARATOR.'schedule-'.sha1($this->expression.$this->command);
    }
然后查看源碼看到互斥鎖是使用的系統(tǒng)的緩存服務(wù)。猜想是緩存服務(wù)出了問題。
然后查看緩存的配置文件,發(fā)現(xiàn)之前配置的緩存驅(qū)動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;
    }
查看完整回答
反對 回復(fù) 2019-03-18
  • 3 回答
  • 0 關(guān)注
  • 1657 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號