code-meme / daemon-bundle
Symfony DoctrineBundle
Requires
- php: >=5.3.2
- symfony/framework-bundle: >=2.1,<3.0
This package is not auto-updated.
Last update: 2024-09-28 12:48:27 UTC
README
#CodeMemeDaemonBundle # ##概述## CodeMemeDaemonBundle 是由 Kevin Vanzonneveld 创建的 PEAR 库 System_Daemon 的包装器。
这将使您能够轻松安装 symfony 扩展,并将您的 Symfony2 控制台脚本转换为系统守护进程。
使用此功能需要在您的 PHP 二进制文件中配置 pcntl。在我的 Ubuntu 服务器上,我可以通过以下命令轻松安装 pcntl
sudo apt-get install php-5.3-pcntl-zend-server
##System_Daemon PEAR 包## System_Daemon 是一个 PHP 类,允许开发者在 Linux 系统上创建自己的守护进程应用程序。该类专注于创建和生成独立的守护进程
更多信息请访问
##DaemonBundle 配置## 将 CodeMeme\Daemonbundle 放置在您的 src 目录中,并执行以下操作
依赖项
将此包添加到您的依赖配置
[CodeMemeDaemonBundle]
git=http://github.com/CodeMeme/CodeMemeDaemonBundle.git
target=/bundles/CodeMeme/Bundle/CodeMemeDaemonBundle
autoload.php
将以下内容添加到您的 autoload.php 文件中
$loader->registerNamespaces(array(
//...
'CodeMeme' => __DIR__.'/../vendor/bundles',
));
appKernel.php
将 CodeMemeDaemonBundle 添加到您的内核引导序列
public function registerBundles()
{
$bundles = array(
//...
new CodeMeme\Bundle\CodeMemeDaemonBundle\CodeMemeDaemonBundle(),
);
//...
return $bundles;
}
config.yml
默认情况下,系统守护进程具有合理的配置。如果您需要更改任何配置设置,您可以通过将此配置添加到您的项目配置中来实现。只有需要更改的值应添加,包扩展将合并您的守护进程配置到其默认配置中。
app/config.yml
#CodeMemeDaemonBundle Configuration Example
code_meme_daemon:
daemons:
#creates a daemon using default options
example: ~
#an example of all the available options
explicitexample:
appName: example
appDir: %kernel.root_dir%
appDescription: Example of how to configure the DaemonBundle
logLocation: %kernel.logs_dir%/%kernel.environment%.example.log
authorName: Jesse Greathouse
authorEmail: jesse.greathouse@gmail.com
appPidLocation: %kernel.cache_dir%/example/example.pid
sysMaxExecutionTime: 0
sysMaxInputTime: 0
sysMemoryLimit: 1024M
appUser: apache
appGroup: apache
appRunAsGID: 1000
appRunAsUID: 1000
运行用户
您可以根据应用程序的最佳需求以不同的用户或组运行守护进程。默认情况下,它将解析从命令行运行守护进程的用户和组,但如果您想以不同的用户运行,可以使用 appUser、appGroup 或 appRunAsGID、appRunAsUID 选项。请记住,如果您需要以不同的用户运行,则必须以 sudo 或超级用户身份启动守护进程。
要查找特定用户的组 ID 和用户 ID,您可以使用以下命令。
jesse@picard:~/ninethousand.org$ id -u www-data
jesse@picard:~/ninethousand.org$ id -g www-data
##创建守护进程## 以下链接是示例项目中使用系统守护进程的示例
##使用## 一旦您将 symfony 控制台命令守护进程化,您就可以像这样从命令行简单地运行它们
jesse@picard:~/codememe$ php app/console jobqueue:start
jesse@picard:~/codememe$ php app/console jobqueue:stop
jesse@picard:~/codememe$ php app/console jobqueue:restart