ILIAS  trunk Revision v5.2.0beta1-34115-g3a2438be29
ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver Class Reference

Class PersistingObserver. More...

+ Inheritance diagram for ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver:
+ Collaboration diagram for ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver:

Public Member Functions

 __construct (Bucket $bucket, Persistence $persistence)
 
 notifyState (int $state)
 
 notifyPercentage (Task $task, int $percentage)
 
 notifyCurrentTask (Task $task)
 
 heartbeat ()
 I'm still alive! If your calculation takes a really long time don't forget to use the heartbeat. More...
 
- Public Member Functions inherited from ILIAS\BackgroundTasks\Observer
 notifyPercentage (Task $task, int $percentage)
 You can change the progress of a currently running task. More...
 
 notifyCurrentTask (Task $task)
 If the current task changes notify the observer. More...
 

Protected Attributes

ILIAS BackgroundTasks Bucket $bucket
 
ILIAS BackgroundTasks Persistence $persistence
 

Detailed Description

Class PersistingObserver.

Author
Oskar Truffer ot@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch When notifying something to the bucket this observer also persists the changes into the database.

Definition at line 31 of file PersistingObserver.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::__construct ( Bucket  $bucket,
Persistence  $persistence 
)

Member Function Documentation

◆ heartbeat()

ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::heartbeat ( )

I'm still alive! If your calculation takes a really long time don't forget to use the heartbeat.

Otherwise the bucket might be killed while still running. All notify tasks of the observer also trigger a heartbeat.

Implements ILIAS\BackgroundTasks\Observer.

Definition at line 70 of file PersistingObserver.php.

70  : void
71  {
72  $this->bucket->heartbeat();
73  $this->persistence->updateBucket($this->bucket);
74  }

◆ notifyCurrentTask()

ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::notifyCurrentTask ( Task  $task)

Definition at line 59 of file PersistingObserver.php.

59  : void
60  {
61  $this->bucket->setCurrentTask($task);
62  $this->bucket->heartbeat();
63  $this->persistence->updateBucket($this->bucket);
64  }

◆ notifyPercentage()

ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::notifyPercentage ( Task  $task,
int  $percentage 
)

Definition at line 52 of file PersistingObserver.php.

52  : void
53  {
54  $this->bucket->setPercentage($task, $percentage);
55  $this->bucket->heartbeat();
56  $this->persistence->updateBucket($this->bucket);
57  }

◆ notifyState()

ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::notifyState ( int  $state)
Parameters
$stateint

Implements ILIAS\BackgroundTasks\Observer.

Definition at line 45 of file PersistingObserver.php.

45  : void
46  {
47  $this->bucket->setState($state);
48  $this->bucket->heartbeat();
49  $this->persistence->updateBucket($this->bucket);
50  }

Field Documentation

◆ $bucket

ILIAS BackgroundTasks Bucket ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::$bucket
protected

◆ $persistence

ILIAS BackgroundTasks Persistence ILIAS\BackgroundTasks\Implementation\TaskManager\PersistingObserver::$persistence
protected

The documentation for this class was generated from the following file: