Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lock Component - Lightning Talk - Symfony Live ...

Lock Component - Lightning Talk - Symfony Live Paris 2017

Lightning Talk about the new Symfony 3.3 Lock Component (french).

Avatar for Fabien Bourigault

Fabien Bourigault

March 31, 2017
Tweet

Other Decks in Programming

Transcript

  1. Persistance locale use Symfony\Component\Lock\Factory; use Symfony\Component\Lock\Store\FlockStore; $store = new FlockStore();

    $factory = new Factory($store); $lock = $factory->createLock('find-room'); if ($lock->acquire(true)) { // The resource "find-room" is locked. $room = $this->findRoom(); $booking->setRoom($room); $lock->release(); }
  2. Persistance distribuée use Symfony\Component\Lock\Strategy\ConsensusStrategy; use Symfony\Component\Lock\Store\CombinedStore; use Symfony\Component\Lock\Store\RedisStore; $stores =

    []; foreach (['server1', 'server2', 'server3'] as $server) { $redis = new \Redis(); $redis->connect($server); $stores[] = new RedisStore($redis); } $store = new CombinedStore($stores, new ConsensusStrategy());
  3. Persistance distribuée $store = new CombinedStore($stores, new ConsensusStrategy()); $factory =

    new Factory($store); $lock = $factory->createLock('find-room'); if ($lock->acquire(true)) { // The resource "find-room" is locked. $room = $this->findRoom(); $booking->setRoom($room); $lock->release(); }