问题标签 [symfony-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
569 浏览

php - 在 Silex 项目中使用 ProcessBuilder

我想使用 Symfony\Component\Process\ProcessBuilder 类,并且可以看到它作为 Silex 代码库的一部分包含在供应商文件夹中。我正在使用 Silex phar 文件并假设因为我可以很容易地实例化其他 Symfony 组件,如请求、响应等,所以当我使用完整的命名空间时,它将正确定位要包含的文件。

但是,当我尝试使用以下方法创建它的实例时:

它给了我一个找不到类的错误。有谁知道为什么会这样,以及如何在 Silex phar 中使用这个类而不在我的项目中单独包含组件?

0 投票
1 回答
1404 浏览

php - 如何在 Symfony2 的子进程中运行 php 函数?

我想在后台并行运行一些功能。

在 Symfony2 甚至 php 中是否有一种很好的方法可以做到这一点?

还是只有Symfony\Component\Process\Process?

我可以将此流程与功能一起使用吗?我需要实际的上下文(登录用户和一些会话数据),所以不可能将函数导出到外部 php 文件......

0 投票
1 回答
2043 浏览

php - Symfony2 进程不实时提供反馈

我的想法是用Symfony2 Process Class启动一个 minecraft 服务器,并希望实时向我提供反馈。因此,就像Process cookbook 部分中所述,我尝试以下代码:

由于 apache2 用户的一些权限问题,我修改了 sudoers 文件: www-data ALL = (myspecialUser) NOPASSWD: /usr/bin/java
所以 www-data 用户可以运行 java 命令。

服务器在后台启动,但我现在的问题是我没有得到任何实时输出。只有当我关闭(或杀死)我的世界服务器进程时,我才会得到输出。

任何建议如何获得实时输出?

0 投票
1 回答
10027 浏览

php - 找不到 Symfony 类

我收到错误消息:

这是我第一次使用 Symfony。我从GitHub站点下载文件。由于下载的文件属于 Process 目录,因此我创建了文件夹以获取正确的路径。(Symfony/组件/进程/下载文件)。

我将 Symfony 目录放在主目录(我的索引文件所在的位置)中。

这就是你安装 Symfony 的方式吗?(注意我只需要 Process 子目录而不是整个框架)

现在我正在使用这个现成的代码,只是为了看看我是否可以让它运行:

为什么我会收到此错误,请问我该如何解决?是不是因为路径不好?

0 投票
2 回答
303 浏览

php - 在 Console Commend 中调用控制器/动作

我想从 LinkedIn 导入数据并将它们保存在我的数据库中。我希望在后台运行。

所以我创建了一个控制台命令。但是如何在控制台命令中调用控制器/操作,以便导入和保存事务可以在后台的控制台命令中运行?

0 投票
1 回答
5373 浏览

php - Symfony2 进程组件 - 无法创建管道并启动新进程

我正在使用 Symfony2 Process 组件来手动管理进程池。

在下面的示例中,我每 2 秒重新启动 2 个简单进程并监视发生的情况。重新启动这些进程数百次后,应用程序会中断。

执行已停止,我收到以下 PHP 警告:

然后 Symfony Process 组件抛出以下异常:

我已经手动监控了打开进程的总数,它永远不会达到预期的限制。

下面的简化片段是 Symfony2 命令的一部分,并且正在从 CLI 运行(例如 app/console hamster:run):

此应用程序正在运行 OS X 10.8.4 的 MAC 服务器上运行。

我将不胜感激有关如何追查此问题根源的任何提示。

更新#1:我已经简化了我的功能,可以使用基本命令,例如ls更快date的测试。在启动和停止大约 1000-1500 个进程后,Process 命令看起来仍然失败。

我怀疑proc_close()每个进程都没有正确调用它,但进一步调查显示这里不是这种情况。

0 投票
2 回答
5236 浏览

php - Symfony2 和后台进程

我的 Symfony 2.3 项目中有一个类正在执行一些 http 请求并且需要一些时间。

我想将此任务作为后台进程运行,以便服务器向客户端返回答案,并且后台进程继续运行。

你知道如何在 Symfony 中做到这一点吗?

我找到了流程组件:http ://symfony.com/doc/current/components/process.html但我不确定是否可以从那里运行类方法。

0 投票
3 回答
1965 浏览

symfony - Symfony 进程以谁的身份运行?

当我们使用Symfony\Component\Process\Process时,命令以谁的身份运行?

我尝试了命令whoamiProcess但它返回无效???

0 投票
0 回答
2517 浏览

php - 使用 Symfony2 进程管理多个 PHP 工作子进程

我想使用Symfony2 Process创建一个具有多个工作子进程的进程。

基本上我有一个骨架可执行PHP脚本,如下所示

问题是如何在童工完成后立即生成新的童工。

据我所知,Process::start()是异步运行进程的方式。

所以如果我运行这个

子进程将异步运行,因为我看到了这个

例如,文件foo-4-8-20140129154751-20140129154759是围绕生成的随机时间创建的,即 8 秒。

但是,我可以知道哪个进程正在结束的唯一方法是使用Process::wait(),但这会阻止整个进程。因此,当主循环被阻塞等待子进程完成时,另一个子进程可能会提前结束。

我最初想使用php file.php命令从内部循环执行另一个 PHP 文件,因为大多数业务逻辑都在同一个代码库中。所以首先尝试使用 PHP 是我的第一直觉。

所以我的问题是

  1. 有没有办法在子进程在最大子数内结束但不使用 Symfony2 进程阻塞后不久产生一个新的子进程?
  2. 或者是否有一个成熟的 PHP 库可以做到这一点(不是框架,虽然我已经使用了一个框架,最好是 PHP 5.3+ 库)?
  3. 如果我不能使用 PHP 做到这一点,是否有另一种方法可以使用 Python 或 PERL 做到这一点?我有点需要一个简单的单文件脚本解决方案。或者也许我可以使用一些需要小配置和更少编码的软件(最好可以安装在 Linux 中)?

更新

我刚刚了解了supervisor。我希望这适合我的需要。所以我在想而不是创建一个 PHP 脚本来生成子进程,也许我可以使用无限循环制作一个脚本并生成一个阻塞子进程,然后设置主管运行几个脚本。但是出于好奇,如果有人可以回答上述问题,那就太好了。

0 投票
1 回答
686 浏览

php - PHP proc_open & exec 超时但 cli 工作正常

我目前使用的是 Symfony Process 组件,它依赖于proc_openPHP 的功能。我需要启动一个命令wkhtmltopdf,它具有以下形式:

当我直接在我的 shell 上运行这个命令时,它工作得很好,大约需要 6 秒才能执行。但是,当我将 PHP 与 Process Component 一起使用时,它会超时……而当使用execorproc_open函数时,它会无限期地运行。Process Component 的默认超时时间是 60 秒(即使延长它也没有任何效果)。

我在 PHP 5.4 和 PHP 5.5 上试过这个,但结果似乎是一样的。

任何想法为什么这个命令在 shell 上运行得很好但不能通过 PHP 运行?在 MAMP 而不是 MAMP 环境中测试(在 5.4 和 5.5 版本上)。它可以在带有 PHP 5.5 的 Ubuntu 14.04 上运行。

我想也许,当通过 PHP 和 MAMP 时,这个过程可以完成,但仍然像这个 bug所报告的那样挂起?当我有更多信息时,我会更新,看看是否确实生成了 PDF。

谢谢。