1 目的

1.1 测试 Laravel 6.0 任务执行机制

2 意义

2.1 在日常开发中,有的任务比较复杂,在两次任务的调度周期间隔中无法完成。

2.2 为了防止重复任务的持续生成和反复调用,对服务器性能造成无谓消耗。

2.3 探索 $schedule->withoutOverlapping() 方法,如何阻断重复任务的调用

3 实验过程

3.1 不加 withoutOverlapping ()

3.1.1 Kernel

protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->job(new SyncAttach())
->everyMinute(); }
3.1.2 结果

[2019-10-10 10:59:02] local.INFO: SyncAttach f1951114-6e57-46aa-b037-2e8761c094a4 start
[2019-10-10 11:00:02] local.INFO: SyncAttach 087c5cb1-aaa9-4b3d-a69d-f2be196105ee start
[2019-10-10 11:01:02] local.INFO: SyncAttach f1951114-6e57-46aa-b037-2e8761c094a4 end
[2019-10-10 11:01:02] local.INFO: SyncAttach 6a80b5f2-39be-4676-91fd-5bd160a7afc0 start

3.1.3 分析

每一分钟都会生成一个 JOB,而不管上一个 JOB 是否完成。

3.2 加入 withoutOverlapping()

3.2.1 Kernel

protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->job(new SyncAttach())
->everyMinute()
->withoutOverlapping(); }
3.2.2 结果

[2019-10-10 11:05:02] local.INFO: SyncAttach d56a32c5-5ca1-47c8-8d96-81a397211276 start
[2019-10-10 11:07:02] local.INFO: SyncAttach d56a32c5-5ca1-47c8-8d96-81a397211276 end
[2019-10-10 11:07:02] local.INFO: SyncAttach 6d4480c1-9da5-48dd-abdb-46b315a19f2a start
[2019-10-10 11:09:02] local.INFO: SyncAttach 6d4480c1-9da5-48dd-abdb-46b315a19f2a end

3.2.3 分析

第6、8分钟并没有生成 Job,是因为上次的 Job 没有完成。

3.3 结论

3.3.1 加上 withoutOverlapping(),可以防止任务调用重复,只有旧的任务完成,新的任务才会产生

3.3.2 用 $schedule->call() 闭包方式执行任务,不可加入 withoutOverlapping(),报错:[2019-10-10 10:51:02] local.ERROR: A scheduled event name is required to prevent overlapping. Use the 'name' method before 'withoutOverlapping'.

Laravel 6.0 Schedule Preventing Task Overlaps 测试的更多相关文章

  1. Laravel 5.0 之命令及处理程序

    本文译自 Matt Stauffer 的 系列文章 . 本文中涉及的新功能都是关于 Commands 的,这些特性在 Laravel 旧版本中已经有了,但是在 Laravel 5.0 中变得更加好用了 ...

  2. Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程

    原文:Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程 Red Gate系列之六 SQL Test 1.0.12.3 Edition S ...

  3. 云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    云优化的概念.Entity Framework 7.0.简单吞吐量压力测试 继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之 ...

  4. redis3.0集群部署和测试

    redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...

  5. PHP laravel 5.0 Blade 模板引擎 Api使用备注

    PHP laravel 5.0 Blade 模板引擎 Api使用备注 /** * PHP laravel 5.0 Blade 模板引擎 Api使用备注 **/ //子模版中开头,调用@extends( ...

  6. 测试开发:从0到1学习如何测试API网关

    本文来自我的一名学员分享 日常工作中,难免会遇到临危受命的情况,虽然没有这么夸张,但是也可能会接到一个陌生的任务,也许只是对这个概念有所耳闻.也许这个时候会感到一丝的焦虑,生怕没法完成领导交给的测试任 ...

  7. Spring3.0.6定时任务task:scheduled

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. laravel 5.0 artisan 命令列表(中文简体)

    #php artisan list Laravel Framework version Usage: [options] command [arguments] Options(选项): --help ...

  9. linux - native task api 测试

    #include <stdio.h>#include <signal.h>#include <unistd.h>#include <sys/mman.h> ...

随机推荐

  1. QT 设置程序图标

    1.应用窗口左上角的图标.状态栏上显示的图标用setWindowIcon()函数: 2.可执行程序的图标设置: (1).右键项目添加一个资源文件 (2).导入.ico文件图标

  2. 以php中的比较运算符操作整型,浮点型,字符串型,布尔型和空类型

    字符,数字,特殊符号的比较依赖ASC II表,本表原先有127个,后来又扩充了一些,里面包含了奇奇奇怪的符号. ASC II表 https://baike.baidu.com/item/ASCII/3 ...

  3. Python进阶:并发编程之Futures

    区分并发和并行 并发(Concurrency). 由于Python 的解释器并不是线程安全的,为了解决由此带来的 race condition 等问题,Python 便引入了全局解释器锁,也就是同一时 ...

  4. PAT甲级题分类汇编——序言

    今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分.语言是 ...

  5. linux根文件系统的挂载过程详解

    一:前言 前段时间在编译kernel的时候发现rootfs挂载不上.相同的root选项设置旧版的image却可以.为了彻底解决这个问题.研究了一下rootfs的挂载过程.特总结如下,希望能给这部份知识 ...

  6. Python 命令行模块使用技巧

    命令行参数传递 python main.py -H 192.168.1.1 -p 22,23,24 #coding:utf-8 import optparse def PortScan(host,po ...

  7. 记录MindSphere On Cloud Foundry的一次尝试过程

    试验背景: 开始时间:2019年12月11日 结束时间:2019年12月13日 自己编写一个后台程序,尝试推送到Cloud Foundry上,并开放从MindSphere以外访问的权限. 程序实现以下 ...

  8. iOS - error:unrecognized selector sent to class 导入第三方SDK .a后不识别,运行崩溃

    今天将app统计的.a静态库包含到一个app应用中,调试时报下面的错误: *** Terminating app due to uncaught exception 'NSInvalidArgumen ...

  9. Xshell 上传文件到Ubuntu

    打开Xshell,连上一台Linux服务器或者是虚拟机 如果要方便的上传文件,需要rz 先测试是否安装rz 命令行~$ rz 如果出现未安装(或者command not found)且建议sudo a ...

  10. Vue指令之`v-text`和`v-html`

    v-text: 没有加载闪烁问题,它会覆盖元素中原本的内容,但是插值表达式,只会替换自己的这个占位符,不会把 整个元素的内容清空. v-html: 使用v-html可以把标签元素也能显示在元素上 &l ...