首页 > 解决方案 > Laravel - 为每个功能设置正确的作业

问题描述

我有一个关于为我的职能设置一些工作的问题。

案例
1. 客户上传图片到 FTP 环境
2. 一个函数会检查客户端要上传到的文件夹中是否有图片
3. 检查图片是否超过 5 分钟(确保没有图片仍在“上传”过程中
4. 检查图像是否大于 0kb(是的,恰好客户端上传 0kb 图像)
5. 缩小图像"intervention/image"
6. 将图像复制到本地网站
7. 将图像移动到“上传”文件夹作为备份

所以这都是必须完成的单一任务。我的问题是,我是否必须为每个功能/任务做一项工作,还是可以将所有功能放在一个工作中?

谢谢!

标签: laraveltaskjobs

解决方案


您不需要使用 cronjobs,您可以从控制器调度作业:

ProcessImage::dispatch($image);

我考虑使用一个包含所有这些任务的类来解决这个问题,而每个任务都由一个公共函数表示(可以根据您的需要添加额外的私有帮助函数)。

之后,创建一个Laravel Job ,它使用Service Container通过依赖注入获取你之前创建的类。在handle你 Job 的方法中,以你想要的任何顺序调用你的类中的函数。


推荐阅读