Skip to content
/ Stark Public
forked from pythias/Stark

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

License

Notifications You must be signed in to change notification settings

asfan/Stark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stark

Stark is 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 as memory_limit via ini_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);
}

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%