| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

Stark - 一个 PHP 实现的轻量级多进程处理 Daemon

Stark

Starkis a library for running php code as multi-process daemon.

Requires

  • PHP 5.3 or Higher
  • A POSIX compatible operating system (Linux, OSX, BSD)
  • POSIX and PCNTL Extensions for PHP

Features

  • Simple Callbacks
  • Daemon Monitoring
  • Automatic Restart

Usage

We just need only one script file and one config file. The php script file defines the callback functions. The ini config file defines daemon's enviroments. You can use this command to start you daemon:

php src/Stark/run.php -f [ini_config_file]

Daemon configuration

  • main.name : A string specifying the daemon's unique name
  • main.host : A string specifying the bind ip address of monitoring server
  • main.port : An integer value specifying the bind port of monitoring server.
  • main.working_dir : A path to a directory where the daemon should put its log file and socket file.
  • run.script_file : The file that defines the callback funtions.
  • run.memory_limit : Specified as the php shorthand notation for bytes (see the manual ). This will be set asmemory_limitviaini_set
  • worker.count : An integer value specifying the number of worker.
  • worker.max_run_count : The maximum number of runs, after the number reached the worker will restart every time.
  • worker.max_run_seconds : An integer value in seconds, specifying the maximum time the worker will restart after the time arrives.
  • worker.max_idle_seconds : An integer value in seconds, specifying the longest idle time, the worker will restart after the time arrives.

An example configuration ini file:

[main]  name = "config_1"  host = "127.0.0.1"  port = 9003  working_dir = "/tmp"    [run]  script_file = "run_1.php"  memory_limit = "1024M"    [worker]  count = 3  max_run_count = 10000  max_run_seconds = 3600  max_idle_seconds = 60

An example callback file:
<?php    $g_count = 0;    function run($worker, $data) {      global $g_count;      $g_count++;        echo "Worker {$worker->index} current: {$g_count}\r\n";      usleep(100000);  }

项目主页:http://www.open-open.com/lib/view/home/1436863173271

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1436863173271.html
Stark PHP开发