本文整理汇总了PHP中Scheduler::addHandlerTask方法的典型用法代码示例。如果您正苦于以下问题:PHP Scheduler::addHandlerTask方法的具体用法?PHP Scheduler::addHandlerTask怎么用?PHP Scheduler::addHandlerTask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scheduler
的用法示例。
在下文中一共展示了Scheduler::addHandlerTask方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: runRichards
/**
* The Richards benchmark simulates the task dispatcher of an
* operating system.
**/
function runRichards()
{
$scheduler = new Scheduler();
$scheduler->addIdleTask(ID_IDLE, 0, NULL, COUNT);
$queue = new Packet(NULL, ID_WORKER, KIND_WORK);
$queue = new Packet($queue, ID_WORKER, KIND_WORK);
$scheduler->addWorkerTask(ID_WORKER, 1000, $queue);
$queue = new Packet(NULL, ID_DEVICE_A, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_A, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_A, KIND_DEVICE);
$scheduler->addHandlerTask(ID_HANDLER_A, 2000, $queue);
$queue = new Packet(NULL, ID_DEVICE_B, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_B, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_B, KIND_DEVICE);
$scheduler->addHandlerTask(ID_HANDLER_B, 3000, $queue);
$scheduler->addDeviceTask(ID_DEVICE_A, 4000, NULL);
$scheduler->addDeviceTask(ID_DEVICE_B, 5000, NULL);
$scheduler->schedule();
if ($scheduler->queueCount != EXPECTED_QUEUE_COUNT || $scheduler->holdCount != EXPECTED_HOLD_COUNT) {
$error = "Error during execution: queueCount = " . $scheduler->queueCount . ", holdCount = " . $scheduler->holdCount . ".";
throw new Exception($error);
}
}
示例2: function
define('KIND_WORK', 1);
define('DATA_SIZE', 4);
/**
* The Richards benchmark simulates the task dispatcher of an
* operating system.
**/
$runRichards = function () {
$scheduler = new Scheduler();
$scheduler->addIdleTask(ID_IDLE, 0, null, COUNT);
$queue = new Packet(null, ID_WORKER, KIND_WORK);
$queue = new Packet($queue, ID_WORKER, KIND_WORK);
$scheduler->addWorkerTask(ID_WORKER, 1000, $queue);
$queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_A, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_A, KIND_DEVICE);
$scheduler->addHandlerTask(ID_HANDLER_A, 2000, $queue);
$queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_B, KIND_DEVICE);
$queue = new Packet($queue, ID_DEVICE_B, KIND_DEVICE);
$scheduler->addHandlerTask(ID_HANDLER_B, 3000, $queue);
$scheduler->addDeviceTask(ID_DEVICE_A, 4000, null);
$scheduler->addDeviceTask(ID_DEVICE_B, 5000, null);
$scheduler->schedule();
if ($scheduler->queueCount != EXPECTED_QUEUE_COUNT || $scheduler->holdCount != EXPECTED_HOLD_COUNT) {
$msg = "Error during execution: queueCount = " . $scheduler->queueCount . ", holdCount = " . $scheduler->holdCount . ".";
throw new Exception(msg);
}
};
/**
* A scheduler can be used to schedule a set of tasks based on their relative
* priorities. Scheduling is done by maintaining a list of task control blocks