Laravel 根据任务的性质和要求决定处理的方式(Cron or Job)
1 前言
一般地,我们在应用的开发中,会碰到各种各样的任务解决需求。我的原则是,选择合适的方法做正确的事。
2 任务分类
在开发中, 一般会有以下几种性质的任务。
2.1 实时任务
一般是指,任务间的关系较为紧密,甚至互为前置与后置的关系。
对于这种任务,按正常开发模式开发就好。应确保方法的单一职责,要具有排他性。如果一个方法的名称怎么起都不合适,或许我们就违反了此原则。
2.2 异步任务
作务前后关系耦合性不强,实时性要求不高,允许稍后实现。我们可以把它看作异步任务。
如:拼音码的生成、附件格式的转换、相关字段的统计和计算、子任务的自动同步生成等。
2.3 周期性任务
某些任务需要周期性进行处理,以确保数据的时效性,我们可以看作周期性任务。
如:年龄计算、保质期、有效期、考试时间范围等。
3 基于用户体验的开发取舍
没有一个人愿意发生以下的事情,包括你自己。
- 点击一个按钮,半天出不来结果,总在提示耐心等待
- 年龄并不随着系统时间的推移自动更新,总要求我去刷新一下
所以,开发要以用户的体验为出发点和归集点。想办法去提升 Web 响应的性能。按任务的性质,该进 cron 就进 cron,该进 job 就进 job!
另一种情况:
实时性要求比较高。比如,考试系统。在用户提交一道答题结果时,要求立即看到进度和正确率的信息。
这种情况下,要果断放弃 job 方式,采用实时计算。
4 Laravel 对 Cron 和 Job 的支持
待续 ...
Laravel 根据任务的性质和要求决定处理的方式(Cron or Job)的更多相关文章
- Laravel 5.x 请求的生命周期(附源码)
Laravel最早接触是刚开始实习的时候,那时通过网上的学习资料很快便上手,开发模块接口.后来没有什么深入和总结,但是当我刚开始学Laravel的时候,我对Laravel最大的认识就是,框架除了路由. ...
- Laravel学习笔记(三)数据库 数据库迁移
该章节内容翻译自<Database Migration using Laravel>,一切版权为原作者. 原作者:Stable Host, LLC 翻译作者:Bowen Huang 正文: ...
- Laravel 5.1使用命令行模式(artisan)运行php脚本
Laravel有内置命令调度器,可以方便的实现Cron. 任务调度定义在app/Console/Kernel.php文件的schedule方法中,该方法已经包含了一个示例.Laravel里有两种方法执 ...
- 使用laravel的任务调度(定时执行任务)
laravel中有一个很强大上的功能,只需要在服务器上添加一个cron条目,就可以定时执行所有的laravel任务. 现在有如下数据表: 我想让cron表中的cron字段的值每分钟增加1,那么我需要如 ...
- laravel框架中所用到的依赖注入
用Laravel开发前前后后有2个月左右了,之前一直写Java,就像找到Java和PHP之前的共同点,用Java的某些原理去理解PHP会发现还是有很多共通之处的.Java的依赖注入已经是一个很常见的概 ...
- 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的
在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...
- 从零开始部署一个 Laravel 站点
从零开始部署一个 Laravel 站点 此文章为原创文章,未经同意,禁止转载. PHP Laravel Web Git 在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubun ...
- Laravel核心之IOC和Facade 架构分析1
控制反转(Inversion of Control) 缩写为IoC 最常见的方式叫做依赖注入 简单说来,就是一个类把自己的的控制权交给另外一个对象,类间的依赖由这个对象去解决. Laravel 中的使 ...
- 推荐几个Laravel 后台管理系统
小编推荐几个Laravel 后台管理系统 由百牛信息技术bainiu.ltd整理发布于博客园 一.不容错过的Laravel后台管理扩展包 —— Voyager 简介Voyager是一个你不容错过的La ...
随机推荐
- linux case ${variable} in
脚本实现划分考试等级层次;
- Redis 的 GEO 特性将在 Redis 3.2 版本释出
Redis 的 GEO 特性将在 Redis 3.2 版本释出, 这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作. 本文将对 Redis 的 GEO 特性进行介绍, 说明这个特性 ...
- 黑盒测试用例设计——PICT(QQ实践)
以QQ的状态设置来做一次实践.QQ用户可以对如下的状态方面的设置.后两张图是登录后的状态的可选项和鼠标键盘无动作后将状态切换至的可选项.默认的自动回复有三种,默认的快捷回复有四种.对于自动回复和快捷 ...
- 5.Struts2配置形式,覆盖
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 下面以对struts.i18n.encoding=UTF-8的配置为例进行说 ...
- grep命令打印前N行
想打印前5行,用head即可:grep xxx |head -n 5
- visibility和display
visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着.display: none----将元素的显示设为无,即在网页中不占任何的位置.
- CGBitmapContextCreate函数参数详解 以及在 ios7下变化
函数原型: CGContextRef CGBitmapContextCreate ( void *data, size_t width, size_t height, size_t ...
- oracle ITL(事务槽)的理解
一.ITL描述: ITL(Interested Transaction List)是Oracle数 据块内部的一个组成部分,位于数据块头(block header),itl由xid,uba,flag, ...
- do you\have you\are you
如果想问对方动作方面的 就用do you 例如 你知道吗? do you konw 如果想问对方是不是什么 就用are you 例如 你是一名教师吗 are you a teacher ? 如果想问对 ...
- 4、注解反射生成SQL语句
.任务说明 ①有一张用户表,字段包括:用户ID.用户名.昵称.年龄.性别.所在城市.邮箱.手机号: ②使用java注解来对用户表的每个字段或字段的组合条件进行动态生成S ...