首页 > 解决方案 > 如何在 laravel 的队列作业中运行 Symfony Process 功能

问题描述

现在我正在做一些项目使用 laravel 框架。我可以在队列作业中运行 Symfony Process 功能吗?

use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

现在我想为此使用 Symfony Process 功能进行一些推荐

process = new Process("facebook-scraper --filename public/data/nintendo.csv --pages 5 nintendo");

如果在队列之外。此代码可以成功运行。但是当我想让它在队列作业中运行时。它不能。

我如何能够在作业 laravel 的队列中运行 symfony Process 函数。

标签: phplaravelsymfony-process

解决方案


我认为问题在于路径。将--filename选项值替换为绝对路径(来自 /):

$path = public_path('data/nintendo.csv');

$process = new Process("facebook-scraper --filename {$path} --pages 5 nintendo");

...

...

并尝试使用可执行文件 ( facebook-scraper) 的完整路径。您可以使用which它来找到它。

例子:

$ which facebook-scraper       
/usr/bin/facebook-scraper

推荐阅读