定制 yeebase/supervisor 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yeebase/supervisor

Composer 安装命令:

composer require yeebase/supervisor

包简介

A supervisor client package for Flow applications

README 文档

README

With this Flow package you can control and monitor your supervisor daemon http://supervisord.org/api.html and all configured processes from your Flow application. You can use it to control workers that compute job queue tickets in a complex MessageQueue scenario.

Yeebase.Supervisor is an excellent addition to Flow's Flowpack.JobQueue.Common package and some MessageQueue backend like Flowpack.JobQueue.Beanstalkd:

You would like to defer jobs in a message queue and do things asynchronous within your Flow application?

An example MessageQueue stack with Flow:

  1. Supervisor Daemon - monitors and controls your job queue workers (they are doing the hard work) http://supervisord.org/
  2. Beanstalkd Message Queue- manages what jobs to give to the workers (stupid, fast) http://kr.github.io/beanstalkd/
  3. Flowpack.JobQueue.Common - Flow package for putting jobs/functions into an asyncronous pipeline (using a simple @Job\Defer annotation) https://github.com/Flowpack/jobqueue-common
  4. Flowpack.JobQueue.Beanstalkd - The job queue implementation for Beanstalkd backends https://github.com/Flowpack/jobqueue-beanstalkd
  5. Yeebase.Supervisor client package - monitor and control all configured supervisor processes https://github.com/yeebase/Yeebase.Supervisor

Installation & configuration

Just add "yeebase/supervisor" as dependency to your composer.json and run a "composer update" in your root folder. You will also have to install the xml-rpc php extension (would be nice to remove this dependency in some future versions).

Configure the supervisor connection in your Settings.yaml:

Yeebase:
  Supervisor:
    host: 'unix:///var/run/supervisor.sock'
    port: -1
    timeout: 30
    username:
    password:

Command line tool

The Yeebase.Supervisor package comes with a simple Flow command controller:

  1. Test the connection to supervisor and get some details
./flow supervisor:status

This should output something like this:

Successfully connected to supervisor service:
Address: unix:///var/run/supervisor.sock:-1
Identification: supervisor
Version: 3.0 
Api-Version: 3.0
State: RUNNING
  1. Show all configured processes and their details
./flow supervisor:processes status all

Just type ./flow help supervisor to get an overview of all available commands or ./flow help supervisor:processes (f.e.) on how to use a specific command.

Using the SupervisorService in your own classes

The main part of the Yeebase.Supervisor package is a the supervisor client class named "SupervisorService". In Flow you can just inject this class to your custom controllers via the following php code:

...
use Yeebase\Supervisor\Service\SupervisorService;

/**
 * My funky class that shows details about configured supervisor processes
 */
class MyFunkyController extends AbstractBaseController {

	/**
	 * @Flow\Inject
	 * @var SupervisorService
	 */
	protected $supervisorService;
...

If the SupervisorService has been injected you can use it in your class without initializing it manually - something like this:

  function showVersionAction() {
    $this->view->assign('version', $this->supervisorService->getVersion();  
  }

yeebase/supervisor 适用场景与选型建议

yeebase/supervisor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.55k 次下载、GitHub Stars 达 4, 最近一次更新时间为 2014 年 05 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 yeebase/supervisor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 yeebase/supervisor 我们能提供哪些服务?
定制开发 / 二次开发

基于 yeebase/supervisor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4.55k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 3
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-3.0
  • 更新时间: 2014-05-16