Laravel 6.0 Schedule Preventing Task Overlaps 测试
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 测试的更多相关文章
- Laravel 5.0 之命令及处理程序
本文译自 Matt Stauffer 的 系列文章 . 本文中涉及的新功能都是关于 Commands 的,这些特性在 Laravel 旧版本中已经有了,但是在 Laravel 5.0 中变得更加好用了 ...
- 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 ...
- 云优化的概念、Entity Framework 7.0、简单吞吐量压力测试
云优化的概念.Entity Framework 7.0.简单吞吐量压力测试 继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之 ...
- redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
- PHP laravel 5.0 Blade 模板引擎 Api使用备注
PHP laravel 5.0 Blade 模板引擎 Api使用备注 /** * PHP laravel 5.0 Blade 模板引擎 Api使用备注 **/ //子模版中开头,调用@extends( ...
- 测试开发:从0到1学习如何测试API网关
本文来自我的一名学员分享 日常工作中,难免会遇到临危受命的情况,虽然没有这么夸张,但是也可能会接到一个陌生的任务,也许只是对这个概念有所耳闻.也许这个时候会感到一丝的焦虑,生怕没法完成领导交给的测试任 ...
- Spring3.0.6定时任务task:scheduled
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- laravel 5.0 artisan 命令列表(中文简体)
#php artisan list Laravel Framework version Usage: [options] command [arguments] Options(选项): --help ...
- linux - native task api 测试
#include <stdio.h>#include <signal.h>#include <unistd.h>#include <sys/mman.h> ...
随机推荐
- Linux基础-08-进程控制
1. 系统监视和进程控制工具—top和free 1) top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) ...
- hadoop 批量处理脚本编写
编写shell脚本就是解决批量处理 1. 在/usr/local/bin 创建脚本 并授权所有用户 chmod a+x xcall.sh xcall.sh 比如:删除/tmp/*所有文件 批量删 ...
- PPPoE中间人拦截以及校园网突破漫谈
本文首发于PPPoE中间人拦截以及校园网突破漫谈,转载请注明出处. PPPoE中间人拦截以及校园网突破漫谈 校园生活快结束了,之前还有点未完成的想法,趁着这两天有兴趣搞搞. 此文面向大众是那种在校园内 ...
- 【Linux】Shell批量修改文件名
修改文件名,替换中间字符: 例如:ABC_define_EFG.jpg,要把中间的define替换成argument: 用如下脚本即可: for var in *; do mv "$var& ...
- hdu 2643 rank 第二类斯特林数
题意:给定n个人,要求这n个人的所有可能排名情况,可以多个人并列(这个是关键). 题解:由于存在并列的问题,那么对于n个人,我们最多有n个排名,枚举一下1~n,累加一下就好.(注意这里是变种的斯特林数 ...
- Python、PyCharm、Django框架安装
一.下载Python环境 1.1 下载Python环境,以下网址: https://www.python.org/downloads/release/python-373/ 下载安装包: 1.2点击安 ...
- 【leetcode】280.Wiggle Sort
原题 Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] & ...
- JAVA笔记整理(一),JAVA介绍
JAVA语言的版本: J2SE(Java2 Platform Standard Edition,java平台标准版),后更名为:JAVA SE J2EE(Java 2 Platform,Enterpr ...
- 记录java+testng运行selenium(二)---定义元素类及浏览器
一: 元素类 整体思路: 1. 根据状态可分可见和不可见两种 2. 同一个路径可以查找单个元素或多个元素 3. 获取元素text或者指定的value值 4. selenium对元素操作有两种,一是通过 ...
- 【转】通过BeanNameAutoProxyCreator改变臃肿代码
https://www.cnblogs.com/zdd-java/p/7861824.html 前言: 最近接手了一个项目,大概过了下需求,然后打开项目准备开搞的时候发现一个问题,这个项目是提供res ...