tamerlib/tests/tamer_standalone.php

40 lines
No EOL
1.2 KiB
PHP

<?php
use LogLib\Log;
use TamerLib\Enums\TamerMode;
use TamerLib\Objects\ServerConfiguration;
use TamerLib\tm;
require 'ncc';
import('net.nosial.tamerlib');
// Start as client mode, if no configuration is passed on then
// Tamer will spawn its own Redis server and use it.
tm::initalize(TamerMode::CLIENT, new ServerConfiguration('127.0.0.1', 6379, null, 0));
tm::createWorker(12);
$total_sleep = 0;
$start_time = time();
// Start doing programming!
// Loop 30 times, each time we will do a job
for($i = 0; $i < 30; $i++)
{
$sleep_time = random_int(5, 10);
$total_sleep += $sleep_time;
/** @noinspection PhpUndefinedMethodInspection */
$job_id = tm::sleep($sleep_time);
// Log the result
print(sprintf('Created task %s', $job_id) . PHP_EOL);
}
print('Waiting for jobs to finish...' . PHP_EOL);
// Wait for all jobs to finish
tm::wait(function($job_id, $return){
print(sprintf('Task %s finished with return value %s', $job_id, $return) . PHP_EOL);
});
print(sprintf('Total sleep time: %s', $total_sleep) . PHP_EOL);
print(sprintf('Total execution time: %s', time() - $start_time) . PHP_EOL);