Ejemplo n.º 1
0
 /**
  * This function creates a bucket for each job in fork daemon so it is
  * easier to manage if it should run or not.
  *
  * @param string $class Job to create buckets for.
  * @return void
  */
 private function createJobBuckets($class)
 {
     $job = $this->getJob($class);
     $this->fork_daemon->add_bucket($class);
     $this->fork_daemon->max_children_set(1, $class);
     $this->fork_daemon->register_child_run(array($this, 'processWork'), $class);
     $this->fork_daemon->register_parent_child_exit(array($this, 'parentChildExit'), $class);
     $this->fork_daemon->child_max_run_time_set($job->getMaxRunTime(), $class);
 }
Ejemplo n.º 2
0
<?php

declare (ticks=1);
require_once __DIR__ . '/../fork_daemon.php';
/* setup forking daemon */
$server = new fork_daemon();
$server->max_children_set(5);
$server->max_work_per_child_set(3);
$server->register_child_run("process_child_run");
$server->register_parent_child_exit("process_child_exit");
$server->register_logging("logger", fork_daemon::LOG_LEVEL_ALL);
test_identifier();
function test_identifier()
{
    global $server;
    $server->child_single_work_item_set(true);
    $server->max_work_per_child_set(1);
    echo "Adding 100 units of work\n";
    /* add work */
    $data_set = array();
    for ($i = 0; $i < 100; $i++) {
        $data_set[] = $i;
    }
    shuffle($data_set);
    $data_set = array_chunk($data_set, 3);
    $i = 0;
    foreach ($data_set as $item) {
        $server->addwork($item, "IDn{$i}");
        $i++;
    }
    echo "Processing work in non-blocking mode\n";