public function scheduleAbsoluteWithState($state, $dueTime, callable $action)
{
$queue = $this->queue;
$currentScheduler = $this;
$scheduledItem = null;
$run = function ($scheduler, $state1) use($action, &$scheduledItem, &$queue) {
$queue->remove($scheduledItem);
return $action($scheduler, $state1);
};
$scheduledItem = new ScheduledItem($this, $state, $run, $dueTime);
$this->queue->enqueue($scheduledItem);
return $scheduledItem->getDisposable();
}