- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要在后台执行 Laravel 长时间运行的进程以使用 Twitter Streaming API。实际上,我需要运行的 php artisan CLI 命令是
nohup php artisan startStreaming > /dev/null 2>&1 &
如果我自己在命令行中运行它,它会完美运行。
我的想法是,我可以单击网站上的一个按钮,通过执行开始流式传输的长时间运行的 artisan 命令来启动流式传输(需要在后台运行,因为 Twitter 流式传输连接永无止境)。通过命令行工作正常。
但是,以编程方式调用命令不起作用。我尝试通过另一个命令的 callSilent() 静默调用它,并尝试使用 Symfony\Component\Process\Process 运行 artisan 命令或运行运行上述命令的 shell 脚本,但我无法弄清楚.
更新如果我对打开流连接的命令进行排队,它会导致队列 worker 的进程超时
我实际上需要一种方法来从 PHP 类/脚本运行上述命令,但 PHP 脚本不等待该命令的完成/输出。
非常感谢帮助
最佳答案
默认情况下,Symfony 进程组件将在当前工作目录中执行提供的命令,getcwd()
。
getcwd()
返回的值不会是 Laravel 安装目录(包含 artisan 的目录),所以该命令很可能会返回一个 artisan: command not found
消息。
Process Component documentation 中未提及但如果你看一下class file ,我们可以看到该构造允许我们提供一个目录作为第二个参数。
public function __construct(
$commandline,
$cwd = null,
array $env = null,
$input = null,
$timeout = 60, array
$options = array())
您可以通过在初始化类时提供第二个参数来异步执行所需的命令:
use Symfony\Component\Process\Process;
$process = new Process('php artisan startStreaming > /dev/null 2>&1 &', 'path/to/artisan');
$process->start();
关于php - 在后台执行 Laravel/Symfony/Artisan 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216857/
在全新的 Laravel 安装中,我正在运行 php artisan migrate 并且它正在返回: [Illuminate\Database\QueryException]
是否可以为 创建 Artisan 调用或命令 php artisan migrate 喜欢 Artisan::call('migrate); 因此,当连接动态更改时,我可以将丢失的表迁移到我的数据库。
我想创建一个别名,例如 php artisan go 而不是 php artisan 服务 我会感激任何其他想法:-)。我也读过这篇文章link并搜索了很多,但不太清楚,其他问题是关于制作 class
我在 Horizon 中使用 Laravel 队列和 Redis。Supervisor 正在运行 artisan horizon,它会生成进程 /usr/bin/php7.2 artisan
我在内核命令中工作,我需要更改旧命令: 旧命令是: php artisan crawl:author 现在我需要将其重命名为: php artisan crawl-bq:author 在我的命令文件签
我决定测试新的 Laravel。所以我从基本命令开始: $ laravel new blog $ php artisan make:auth $ php artisan migrate 我编辑了 Ap
在 Laravel 中注意到有两种方法可以清除缓存 php artisan cache:clear 和 php artisan config:cache 但是我意识到只有第二个在更改本地化、添加 la
我正在做一个 Lumen 项目。 我尝试使用 Artisan::call('my-command') 但是 PHP 说我没有定义 Artisan 类。 我已经使用以下命令启用了 Facade: $ap
那么 php artisan serve 到底在做什么呢?我目前有一个在 apache 上运行的站点,我正在尝试建立一个 websocket 框架以进行实时聊天。 websocket是一个后台运行的p
通常我会运行像这样的 laravel artisan 命令 php artisan Command -v 如果出现错误,我可以使用 -v 标志找到文件/行号。 出于某种原因,-v 不适用于我的命令之一
主表 POll public function up() { Schema::create('poll', function (Blueprint $table) {
您好,我在使用 php artisan migrate 在我的 vps 服务器上进行迁移时遇到问题。我已经安装了apache2和mysql。我可以通过 mysql -u root -p 使用密码“pa
由于某种原因,每当我运行任何 php artisan 命令时,我都会收到一条错误消息,指出我的一个表不存在。这是真的,我正在开始一个新的数据库。我不明白的是, artisan 到底为什么需要使用这张
我正在设置 Laravel 环境。所以,我下载了 XAMPP 并相应地配置了我的 vhost 文件。然后,我设置 MySQL 并运行以下命令: Composer 安装 npm 安装 php artis
我在我的 Mac 上运行本地 MAMP 机器。 Laravel 在生产环境中运行。 Laravel 能够在我通过浏览器显示的 php 页面上访问 MySQL 数据库,但是当我在终端中运行 php ar
我已经将我的 Laravel 5.5 项目上传到 centOS7 服务器。现在,当我第一次运行“php artisan migrate”加载数据库表时,我遇到了以下错误。 Error message
我正在运行一个基本的 artisan command test但是 phpunit 提示 This test did not perform any assertion。但是我断言了退出代码。 pub
我正在 Azure 上运行 Laravel 应用程序。事情正在朝着正确的方向发展,composer install 根本不起作用。然而现在,“php artisan optimize”命令超时了: 但
当我尝试运行 artisan 命令 php artisan route:list 时出现以下错误: [Symfony\Component\Debug\Exception\FatalErrorExcep
今天我遇到了一个我以前从未遇到过的非常奇怪的情况,而且在任何地方都找不到解决办法。 每当我在控制台中键入 php artisan 时,它都不会返回任何内容。尝试多次克隆 repo(在此处的其他机器上运
我是一名优秀的程序员,十分优秀!