Laravel 根据任务的性质和要求决定处理的方式(Cron or Job)

1 前言

一般地,我们在应用的开发中,会碰到各种各样的任务解决需求。我的原则是,选择合适的方法做正确的事。

2 任务分类

在开发中, 一般会有以下几种性质的任务。

2.1 实时任务

一般是指,任务间的关系较为紧密,甚至互为前置与后置的关系。

对于这种任务,按正常开发模式开发就好。应确保方法的单一职责,要具有排他性。如果一个方法的名称怎么起都不合适,或许我们就违反了此原则。

2.2 异步任务

作务前后关系耦合性不强,实时性要求不高,允许稍后实现。我们可以把它看作异步任务。

如:拼音码的生成、附件格式的转换、相关字段的统计和计算、子任务的自动同步生成等。

2.3 周期性任务

某些任务需要周期性进行处理,以确保数据的时效性,我们可以看作周期性任务。

如:年龄计算、保质期、有效期、考试时间范围等。

3 基于用户体验的开发取舍

没有一个人愿意发生以下的事情,包括你自己。

  • 点击一个按钮,半天出不来结果,总在提示耐心等待
  • 年龄并不随着系统时间的推移自动更新,总要求我去刷新一下

所以,开发要以用户的体验为出发点和归集点。想办法去提升 Web 响应的性能。按任务的性质,该进 cron 就进 cron,该进 job 就进 job!

4 Laravel 对 Cron 和 Job 的支持

待续 ...

猜你喜欢

转载自www.cnblogs.com/mouseleo/p/9298259.html
job