Skip to content

Commit 2d4ba43

Browse files
[Lock] Complete Lock example for less ambiguity
1 parent 02a3d84 commit 2d4ba43

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

components/lock.rst

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,42 @@ Serializing Locks
7575
The :class:`Symfony\\Component\\Lock\\Key` contains the state of the
7676
:class:`Symfony\\Component\\Lock\\Lock` and can be serialized. This
7777
allows the user to begin a long job in a process by acquiring the lock, and
78-
continue the job in another process using the same lock::
78+
continue the job in another process using the same lock.
7979

80+
First, you may create a serializable class containing the resource and the
81+
key of the lock::
82+
83+
// src/Lock/RefreshTaxonomy.php
84+
namespace App\Lock;
85+
86+
use Symfony\Component\Lock\Key;
87+
88+
class RefreshTaxonomy
89+
{
90+
private object $article;
91+
private Key $key;
92+
93+
public function __construct(object $article, Key $key)
94+
{
95+
$this->article = $article;
96+
$this->key = $key;
97+
}
98+
99+
public function getArticle(): object
100+
{
101+
return $this->article;
102+
}
103+
104+
public function getKey(): Key
105+
{
106+
return $this->key;
107+
}
108+
}
109+
110+
Then, you can use this class to dispatch all that's needed for another process
111+
to handle the rest of the job::
112+
113+
use App\Lock\RefreshTaxonomy;
80114
use Symfony\Component\Lock\Key;
81115
use Symfony\Component\Lock\Lock;
82116

0 commit comments

Comments
 (0)