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); }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!