Merge pull request #5431 from appwrite/feat-db-pools-event-pause
feature to pause events
This commit is contained in:
commit
662bcaaaf6
3 changed files with 35 additions and 0 deletions
|
@ -46,6 +46,7 @@ class Event
|
||||||
protected array $context = [];
|
protected array $context = [];
|
||||||
protected ?Document $project = null;
|
protected ?Document $project = null;
|
||||||
protected ?Document $user = null;
|
protected ?Document $user = null;
|
||||||
|
protected bool $paused = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $queue
|
* @param string $queue
|
||||||
|
@ -263,6 +264,10 @@ class Event
|
||||||
*/
|
*/
|
||||||
public function trigger(): string|bool
|
public function trigger(): string|bool
|
||||||
{
|
{
|
||||||
|
if ($this->paused) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return Resque::enqueue($this->queue, $this->class, [
|
return Resque::enqueue($this->queue, $this->class, [
|
||||||
'project' => $this->project,
|
'project' => $this->project,
|
||||||
'user' => $this->user,
|
'user' => $this->user,
|
||||||
|
@ -468,4 +473,22 @@ class Event
|
||||||
*/
|
*/
|
||||||
return \array_values($events);
|
return \array_values($events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the value of paused
|
||||||
|
*/
|
||||||
|
public function isPaused(): bool
|
||||||
|
{
|
||||||
|
return $this->paused;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of paused
|
||||||
|
*/
|
||||||
|
public function setPaused(bool $paused): self
|
||||||
|
{
|
||||||
|
$this->paused = $paused;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,6 +142,10 @@ class Func extends Event
|
||||||
*/
|
*/
|
||||||
public function trigger(): string|bool
|
public function trigger(): string|bool
|
||||||
{
|
{
|
||||||
|
if ($this->paused) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$client = new Client($this->queue, $this->connection);
|
$client = new Client($this->queue, $this->connection);
|
||||||
|
|
||||||
$events = $this->getEvent() ? Event::generateEvents($this->getEvent(), $this->getParams()) : null;
|
$events = $this->getEvent() ? Event::generateEvents($this->getEvent(), $this->getParams()) : null;
|
||||||
|
|
|
@ -58,6 +58,14 @@ class EventTest extends TestCase
|
||||||
$this->assertEquals(\Resque::size($this->queue), 1);
|
$this->assertEquals(\Resque::size($this->queue), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testPause(): void
|
||||||
|
{
|
||||||
|
$this->object->setPaused(true);
|
||||||
|
$this->assertTrue($this->object->isPaused());
|
||||||
|
$this->object->setPaused(false);
|
||||||
|
$this->assertNotTrue($this->object->isPaused());
|
||||||
|
}
|
||||||
|
|
||||||
public function testReset(): void
|
public function testReset(): void
|
||||||
{
|
{
|
||||||
$this->object
|
$this->object
|
||||||
|
|
Loading…
Reference in a new issue