Laravel工作覆盖其他工作吗?(Laravel job overwriting other jo

2019-10-29 06:44发布

我不太确定如何词这一个,但我有一个叫做工作uploadFile ,它使用CloudConvert已上载的文件(如PDF)转换为JPG。

用于隔离,这一切的伟大工程。 我可以上传一个文件,它会被保存到S3,那么CloudConvert得到S3文件,将其转换和上传太多。 完善。

当它被同时使用一个以上的人,文件搞混。 该文件名是正确的(所以变量本身必须是正确的),但处理的实际图像是别人的某种方式。

$originalFileName = str_replace('.'.$this->extension, '', $this->actualFileName);
$tempName = $originalFileName.'_'.time().'.jpg';
$fileName = $originalFileName.'_'.time();

Storage::disk('s3')->put($folder.$fileName, $file, 'public');

$fileUrl = Storage::disk('s3')->url($fileName);

CloudConvert::file($fileUrl)
    ->withOptions([
        'quality' => 80,
        'resize' => '400x400',
    ])->to(CloudConvert::S3($tempName));

在上文中,在文件Storage->put()是正确的,因为是$tempName$fileName 。 不知何故,它的转换文件是错误的,所以输出JPEG是从别人的上传。

有没有人有什么我可以尝试任何想法? 我什至不知道从哪里开始调试。

Answer 1:

简单Exchange time()

$mark = microtime().rand(10,100);
$tempName = $originalFileName.'_'.$mark.'.jpg';
$fileName = $originalFileName.'_'.$mark;


Answer 2:

Eugh,好吧,我终于摸索出来。 CloudConvert需要被重新实例。 查看线程在这里 ,如果有谁遇到这一次。



文章来源: Laravel job overwriting other jobs?