【发布时间】:2017-11-10 13:03:06
【问题描述】:
我们正在使用这个库 laravel-snappy 在队列中生成 PDF。
该库旨在在执行脚本后删除所有 tmp 文件。这是由于Knp\Snappy\AbstractGenerator 类中的以下代码:
public function __destruct()
{
$this->removeTemporaryFiles();
}
参考 - https://github.com/KnpLabs/snappy/blob/master/src/Knp/Snappy/AbstractGenerator.php#L57
当我们在队列作业和 Laravel 中使用它时,一旦 queue:work 命令启动,它将继续运行,直到手动停止或关闭终端。
所以要清理 tmp 文件,我每次都必须重新启动队列工作程序。
有没有其他选择?
注意 - laravel-snappy 的包装器内的类 Knp\Snappy\AbstractGenerator 的实例是 protected。所以我不能直接调用它的方法。
参考 - https://github.com/barryvdh/laravel-snappy/blob/master/src/PdfWrapper.php#L20
【问题讨论】:
-
这个函数有一个循环检查php配置可能是最大执行时间的问题尝试删除少量文件第二件事检查你的文件夹权限。
-
您希望队列工作者每天自动启动并删除您的临时文件?即使您可以使用 setTemporaryFolder 更改临时文件夹的位置,也请明确说明您真正想要的内容,为什么您会担心这个小东西。
标签: php laravel laravel-snappy