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

Lock Component - Lightning Talk - Symfony Live Paris 2017

Lock Component - Lightning Talk - Symfony Live Paris 2017

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

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(); }