Ben*_*ley 5 php recursion function
我有一个问题,我在页面加载时调用 PHP 函数 - 该函数检查文件是否存在,它返回文件名,如果它不存在,它运行一个相当足智多谋且需要时间的脚本 - 转换波形图像从音频文件。问题是音频文件很大,所以创建文件可能需要一些时间,所以如果音频文件没有与之关联的图像文件,页面加载所需的时间与进程一样长。
我想要的是让这个函数返回一个不存在的占位符图像,但在页面加载后继续这个过程 - 或者在后台。所以理论上当页面在以后重新加载时,正确的图像就会出现。
我目前可以获得占位符图像的返回,但随后该过程停止并且图像不会生成。这是我到目前为止所拥有的:
function example($file_path, $file_name) {if ($file_path) {
if (file_exists("/path/to/folder/{$file_name}.png")) {
return "/path/to/folder/{$file_name}.png";
}
if (!file_exists("/path/to/folder/{$audio_file_name}.png")) {
return "/path/to/folder/processing.png";
Some stuff in here
return $new image
} return FALSE
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,当文件不存在时,这只会停止,但我希望这里的内容在后台继续。有可能还是我需要不同的方法?像 cron 工作之类的?任何帮助表示赞赏。
您可以尝试像 resque 这样的排队系统https://github.com/chrisboulton/php-resque
然后,您可以生成一个作业,处理信息并通过“处理”图像快速返回。通过这种方法,您将不知道它何时完成。
根据我的经验,这仍然比与操作人员争论编译具有多线程支持的 php 更容易。