【问题标题】:Laravel - Setting up right Jobs per functionLaravel - 为每个功能设置正确的作业
【发布时间】:2019-08-20 11:51:30
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: laravel task jobs


    【解决方案1】:

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

    ProcessImage::dispatch($image);
    

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

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

    【讨论】:

    • 谢谢,我会试试的。因此,如果我理解,对于必须“处理”的每张图像,它都会有自己的工作吗?示例:如果我在文件夹中有 10 张新图像,将创建 10 个作业来处理它们。
    • @Dennis 我编辑了我的答案。您不必创建 cron 作业,只需在用户在控制器中上传图像后调度作业即可。
    • 对工作感到抱歉,我的意思是 Laravel 工作,它将被排队,所以你添加到你的答案中,我调度工作。我知道我不必制作 cronjobs,只需要一个用于 laravel 调度程序的任务
    • @Dennis 没错,你应该只创建 laravel 调度程序 cronjob。
    猜你喜欢
    • 2020-10-21
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2021-12-16
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多