РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1067 of 1361 menu

Метод refresh класса Lock

Метод refresh класса Lock продлевает срок жизни уже acquired блокировки. Он используется в тех случаях, когда операция выполняется дольше, чем изначальный TTL блокировки, и нужно предотвратить её автоматическое истечение. Метод не принимает параметров и возвращает boolean: true, если блокировка успешно обновлена, и false в противном случае.

Синтаксис

public function refresh(): bool

Пример

Давайте создадим блокировку, а затем продлим её срок жизни:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentLockLockFactory; class LockController extends AbstractController { public function index(LockFactory $lockFactory): Response { $lock = $lockFactory->createLock('article'); $res = $lock->acquire(); var_dump($res); $res = $lock->refresh(); var_dump($res); return new Response('ok'); } } ?>

Результат выполнения кода:

bool(true) bool(true)

Пример

Давайте проверим, что refresh возвращает false, если блокировка не была acquired:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentLockLockFactory; class LockController extends AbstractController { public function index(LockFactory $lockFactory): Response { $lock = $lockFactory->createLock('article'); $res = $lock->refresh(); var_dump($res); return new Response('ok'); } } ?>

Результат выполнения кода:

bool(false)

Пример

Давайте продлим блокировку после освобождения и убедимся, что метод возвращает false:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentLockLockFactory; class LockController extends AbstractController { public function index(LockFactory $lockFactory): Response { $lock = $lockFactory->createLock('article'); $lock->acquire(); $lock->release(); $res = $lock->refresh(); var_dump($res); return new Response('ok'); } } ?>

Результат выполнения кода:

bool(false)

Смотрите также

  • класс Lock,
    который представляет блокировку ресурса
  • метод acquire,
    который захватывает блокировку
  • метод release,
    который освобождает блокировку
  • метод isAcquired,
    который проверяет, захвачена ли блокировка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить