ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence Class Reference
+ Inheritance diagram for ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence:
+ Collaboration diagram for ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence:

Public Member Functions

 __construct (protected \ilDBInterface $db)
 
 setConnector (\arConnector $c)
 
 saveBucketAndItsTasks (Bucket $bucket)
 Fully updates or creates an Observer and all its tasks into the database. More...
 
 updateBucket (Bucket $bucket)
 Updates only the bucket! Use this if e.g. More...
 
 getBucketIdsOfUser (int $user_id, string $order_by="id", string $order_direction="ASC")
 
Returns
[] Returns an array of bucket ids for the given user Id.
More...
 
 getBucketMetaOfUser (int $user_id)
 
 getBucketIdsByState (int $state)
 
Returns
int[] Returns a list of bucket ids for the given Observer State
More...
 
 getBucketContainerId (Bucket $bucket)
 
 deleteBucket (Bucket $bucket)
 Delete the bucket and all its stuff. More...
 
 loadBuckets (array $bucket_container_ids)
 
- Public Member Functions inherited from ILIAS\BackgroundTasks\Persistence
 loadBucket (int $bucket_container_id)
 
 deleteBucketById (int $bucket_id)
 Deletes the Observer AND all its tasks and values. More...
 

Static Public Member Functions

static instance (\ilDBInterface $db)
 

Protected Member Functions

 gc ()
 
 saveObserver (Bucket $bucket)
 
 saveTask (Task $task, int $bucketId)
 
 saveValue (Value $value, int $bucketId, int $position)
 
 getTaskContainerId (Task $task)
 
 getValueContainerId (Value $value)
 

Protected Attributes

SplObjectStorage $bucketHashToObserverContainerId
 
SplObjectStorage $taskHashToTaskContainerId
 
SplObjectStorage $valueHashToValueContainerId
 
arConnector $connector = null
 

Static Protected Attributes

static BasicPersistence $instance
 
static array $buckets = []
 
static array $tasks = []
 

Detailed Description

Definition at line 32 of file BasicPersistence.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::__construct ( protected \ilDBInterface  $db)

Definition at line 51 of file BasicPersistence.php.

52  {
53  $this->valueHashToValueContainerId = new \SplObjectStorage();
54  $this->bucketHashToObserverContainerId = new \SplObjectStorage();
55  $this->taskHashToTaskContainerId = new \SplObjectStorage();
56  }

Member Function Documentation

◆ deleteBucket()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::deleteBucket ( Bucket  $bucket)

Delete the bucket and all its stuff.

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 497 of file BasicPersistence.php.

References $id, ILIAS\BackgroundTasks\Persistence\deleteBucketById(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getBucketContainerId().

497  : void
498  {
499  $id = $this->getBucketContainerId($bucket);
500  $this->deleteBucketById($id);
501  $this->bucketHashToObserverContainerId->detach($bucket);
502  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
deleteBucketById(int $bucket_id)
Deletes the Observer AND all its tasks and values.
+ Here is the call graph for this function:

◆ gc()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::gc ( )
protected

Definition at line 58 of file BasicPersistence.php.

References ILIAS\$db, ANONYMOUS_USER_ID, ILIAS\BackgroundTasks\Implementation\Bucket\State\FINISHED, and ILIAS\BackgroundTasks\Implementation\Bucket\State\USER_INTERACTION.

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getBucketIdsOfUser().

58  : void
59  {
60  $atom = $this->db->buildAtomQuery();
61 
62  $atom->addTableLock('il_bt_bucket');
63  $atom->addTableLock('il_bt_task');
64  $atom->addTableLock('il_bt_value');
65  $atom->addTableLock('il_bt_value_to_task');
66  $atom->addQueryCallable(function (\ilDBInterface $db): void {
67  $this->db->manipulateF(
68  "DELETE FROM il_bt_bucket WHERE user_id = %s AND (state = %s OR state = %s) AND last_heartbeat < %s AND last_heartbeat > 0",
69  ['integer', 'integer', 'integer', 'integer'],
70  [
71  defined('ANONYMOUS_USER_ID') ? \ANONYMOUS_USER_ID : 13,
74  time() - 1 * 60 * 24 * 30
75  ]
76  );
77 
78  // remove old finished buckets
79  $this->db->manipulateF(
80  "DELETE FROM il_bt_bucket WHERE state = %s AND last_heartbeat < %s AND last_heartbeat > 0",
81  ['integer', 'integer'],
82  [State::FINISHED, time() - 60 * 60 * 24 * 30] // older than 30 days
83  );
84 
85  // remove old buckets with other states
86  $this->db->manipulateF(
87  "DELETE FROM il_bt_bucket WHERE state != %s AND last_heartbeat < %s AND last_heartbeat > 0",
88  ['integer', 'integer'],
89  [State::FINISHED, time() - 60 * 60 * 24 * 180] // older than 180 days
90  );
91 
92  // remove tasks without a bucket
93  $this->db->manipulate(
94  "DELETE il_bt_task FROM il_bt_task LEFT JOIN il_bt_bucket ON il_bt_bucket.id = il_bt_task.bucket_id WHERE il_bt_bucket.id IS NULL;"
95  );
96 
97  // remove value to bucket links without a bucket
98  $this->db->manipulate(
99  "DELETE il_bt_value_to_task FROM il_bt_value_to_task LEFT JOIN il_bt_bucket ON il_bt_bucket.id = il_bt_value_to_task.bucket_id WHERE il_bt_bucket.id IS NULL;"
100  );
101 
102  // remove value to bucket links without a task
103  $this->db->manipulate(
104  "DELETE il_bt_value_to_task FROM il_bt_value_to_task LEFT JOIN il_bt_task ON il_bt_task.id = il_bt_value_to_task.task_id WHERE il_bt_task.id IS NULL;"
105  );
106 
107  // remove values without a task
108  $this->db->manipulate(
109  "DELETE il_bt_value FROM il_bt_value LEFT JOIN il_bt_value_to_task ON il_bt_value_to_task.value_id = il_bt_value.id WHERE il_bt_value_to_task.id IS NULL;"
110  );
111  });
112  $atom->run();
113  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
+ Here is the caller graph for this function:

◆ getBucketContainerId()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getBucketContainerId ( Bucket  $bucket)
Exceptions
SerializationException

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 342 of file BasicPersistence.php.

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\deleteBucket(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\updateBucket().

342  : int
343  {
344  if (!$this->bucketHashToObserverContainerId->contains($bucket)) {
345  throw new SerializationException("Could not resolve container id of task: "
346  . print_r($bucket, true));
347  }
348 
349  return (int) $this->bucketHashToObserverContainerId[$bucket];
350  }
+ Here is the caller graph for this function:

◆ getBucketIdsByState()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getBucketIdsByState ( int  $state)

Returns
int[] Returns a list of bucket ids for the given Observer State

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 193 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\$buckets, ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getId(), and ActiveRecord\where().

193  : array
194  {
195  $buckets = BucketContainer::where(['state' => $state])->get();
196 
197  return array_map(fn(BucketContainer $bucket_container): int => $bucket_container->getId(), $buckets);
198  }
static where($where, $operator=null)
+ Here is the call graph for this function:

◆ getBucketIdsOfUser()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getBucketIdsOfUser ( int  $user_id,
string  $order_by = "id",
string  $order_direction = "ASC" 
)

Returns
[] Returns an array of bucket ids for the given user Id.

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 156 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\gc(), null, and ActiveRecord\where().

156  : array
157  {
158  // Garbage Collection
159  $random = new \Random\Randomizer();
160 
161  if($random->getInt(1, 100) === 1) {
162  $this->gc();
163  }
164 
165  return BucketContainer::where(['user_id' => $user_id])
166  ->orderBy($order_by, $order_direction)
167  ->getArray(null, 'id');
168  }
static where($where, $operator=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ getBucketMetaOfUser()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getBucketMetaOfUser ( int  $user_id)
Returns
BucketMeta[]

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 173 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\$buckets, ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getDescription(), ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getPercentage(), ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getState(), ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getTitle(), ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getUserId(), and ActiveRecord\where().

173  : array
174  {
175  $buckets = BucketContainer::where(['user_id' => $user_id])->get();
176 
177  return array_map(function (BucketContainer $bucketContainer): BasicBucketMeta {
178  $bucketMeta = new BasicBucketMeta();
179 
180  $bucketMeta->setUserId($bucketContainer->getUserId());
181  $bucketMeta->setState($bucketContainer->getState());
182  $bucketMeta->setTitle($bucketContainer->getTitle());
183  $bucketMeta->setDescription($bucketContainer->getDescription());
184  $bucketMeta->setOverallPercentage($bucketContainer->getPercentage());
185 
186  return $bucketMeta;
187  }, $buckets);
188  }
static where($where, $operator=null)
+ Here is the call graph for this function:

◆ getTaskContainerId()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getTaskContainerId ( Task  $task)
protected
Parameters
$taskTask
Exceptions
SerializationException

Definition at line 356 of file BasicPersistence.php.

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveObserver(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveValue(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\updateBucket().

356  : int
357  {
358  if (!$this->taskHashToTaskContainerId->contains($task)) {
359  throw new SerializationException("Could not resolve container id of task: "
360  . print_r($task, true));
361  }
362 
363  return (int) $this->taskHashToTaskContainerId[$task];
364  }
+ Here is the caller graph for this function:

◆ getValueContainerId()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::getValueContainerId ( Value  $value)
protected
Exceptions
SerializationException

Definition at line 369 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\$buckets, $DIC, ILIAS\UI\Implementation\Component\Input\$inputs, ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\$tasks, ActiveRecord\delete(), ILIAS\BackgroundTasks\Persistence\deleteBucketById(), ILIAS\BackgroundTasks\Implementation\Persistence\TaskContainer\getClassName(), ILIAS\BackgroundTasks\Implementation\Persistence\BucketContainer\getCurrentTaskid(), ILIAS\BackgroundTasks\Persistence\loadBucket(), ILIAS\BackgroundTasks\Bucket\setCurrentTask(), ILIAS\BackgroundTasks\Task\setInput(), and ActiveRecord\where().

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveTask().

369  : int
370  {
371  if (!$this->valueHashToValueContainerId->contains($value)) {
372  throw new SerializationException("Could not resolve container id of value: "
373  . print_r($value, true));
374  }
375 
376  return (int) $this->valueHashToValueContainerId[$value];
377  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ instance()

static ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::instance ( \ilDBInterface  $db)
static

Definition at line 42 of file BasicPersistence.php.

Referenced by BackgroundTasks\Implementation\Observer\BasicObserverTest\testCheckIntegrity().

43  {
44  if (!isset(self::$instance)) {
45  self::$instance = new BasicPersistence($db);
46  }
47 
48  return self::$instance;
49  }
+ Here is the caller graph for this function:

◆ loadBuckets()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::loadBuckets ( array  $bucket_container_ids)
Returns
Bucket[]

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 507 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\$buckets, ILIAS\BackgroundTasks\Persistence\deleteBucketById(), and ILIAS\BackgroundTasks\Persistence\loadBucket().

507  : array
508  {
509  $buckets = [];
510  foreach ($bucket_container_ids as $bucket_id) {
511  try {
512  $buckets[] = $this->loadBucket($bucket_id);
513  } catch (\Throwable) {
514  // there seem to be a problem with this container, we must delete it
515  $this->deleteBucketById($bucket_id);
516  }
517  }
518 
519  return $buckets;
520  }
loadBucket(int $bucket_container_id)
deleteBucketById(int $bucket_id)
Deletes the Observer AND all its tasks and values.
+ Here is the call graph for this function:

◆ saveBucketAndItsTasks()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::saveBucketAndItsTasks ( Bucket  $bucket)

Fully updates or creates an Observer and all its tasks into the database.

Parameters
Bucket$bucketThe bucket you want to save.

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 124 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Bucket\checkIntegrity(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveObserver().

124  : void
125  {
126  $bucket->checkIntegrity();
127 
128  $this->saveObserver($bucket);
129  }
+ Here is the call graph for this function:

◆ saveObserver()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::saveObserver ( Bucket  $bucket)
protected
Parameters
Bucket$bucketThe bucket we want to save. This will recursivly save the Observer.

Definition at line 204 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Bucket\getCurrentTask(), ILIAS\BackgroundTasks\Bucket\getDescription(), ILIAS\BackgroundTasks\Bucket\getOverallPercentage(), ILIAS\BackgroundTasks\Bucket\getState(), ILIAS\BackgroundTasks\Bucket\getTask(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getTaskContainerId(), ILIAS\BackgroundTasks\Bucket\getTitle(), ILIAS\BackgroundTasks\Bucket\getUserId(), ILIAS\BackgroundTasks\Bucket\hasCurrentTask(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveTask(), and ILIAS\BackgroundTasks\Bucket\setCurrentTask().

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveBucketAndItsTasks().

204  : void
205  {
206  // If the instance has a known container we use it, otherwise we create a new container.
207  if ($this->bucketHashToObserverContainerId->contains($bucket)) {
208  $bucketContainer = new BucketContainer($this->bucketHashToObserverContainerId[$bucket], $this->connector);
209  } else {
210  $bucketContainer = new BucketContainer(0, $this->connector);
211  }
212 
213  // The basic information about the task.
214  $bucketContainer->setUserId($bucket->getUserId());
215  $bucketContainer->setState($bucket->getState());
216  $bucketContainer->setTitle($bucket->getTitle());
217  $bucketContainer->setDescription($bucket->getDescription());
218  $bucketContainer->setTotalNumberoftasks(count($bucket->getTask()->unfoldTask()));
219  $bucketContainer->setPercentage($bucket->getOverallPercentage());
220 
221  // We want to store the bucket ID in every sub task and value. Thus we need to create an id if not available yet.
222  if (!$bucketContainer->getId()) {
223  $bucketContainer->create();
224  }
225 
226  // The recursive part.
227  $this->saveTask($bucket->getTask(), $bucketContainer->getId());
228  if (!$bucket->hasCurrentTask()) {
229  $bucket->setCurrentTask($bucket->getTask());
230  }
231  $bucketContainer->setCurrentTaskid($this->getTaskContainerId($bucket->getCurrentTask()));
232  $bucketContainer->setRootTaskid($this->getTaskContainerId($bucket->getTask()));
233 
234  // Save and store the container to bucket instance.
235  $bucketContainer->save();
236  $this->bucketHashToObserverContainerId[$bucket] = $bucketContainer->getId();
237  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTask()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::saveTask ( Task  $task,
int  $bucketId 
)
protected
Parameters
Task$taskThe task to save.
int$bucketIdThe bucket id is needed as we want some control over what task belongs to what batch. This will recursivly save a task.

Definition at line 245 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\TaskContainer\getId(), ILIAS\BackgroundTasks\Task\getInput(), ILIAS\BackgroundTasks\Task\getType(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getValueContainerId(), ActiveRecord\save(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveValue(), and ActiveRecord\where().

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveObserver(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveValue().

245  : void
246  {
247  // If the instance has a known container we use it, otherwise we create a new container.
248  if ($this->taskHashToTaskContainerId->contains($task)) {
249  $taskContainer = new TaskContainer($this->taskHashToTaskContainerId[$task]);
250  } else {
251  $taskContainer = new TaskContainer(0);
252  }
253 
254  // The basic information about the task.
255  $taskContainer->setType($task->getType());
256  $taskContainer->setBucketId($bucketId);
257  $reflection = new \ReflectionClass($task::class);
258  $taskContainer->setClassName($task::class);
259 
260  // Recursivly save the inputs and link them to this task.
261  foreach ($task->getInput() as $k => $input) {
262  $this->saveValue($input, $bucketId, $k);
263  }
264  $this->saveValueToTask($task, $taskContainer, $bucketId);
265 
266  // Save and store the container to the task instance.
267  $taskContainer->save();
268  $this->taskHashToTaskContainerId[$task] = $taskContainer->getId();
269  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveValue()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::saveValue ( Value  $value,
int  $bucketId,
int  $position 
)
protected
Parameters
Value$valueThe value
int$bucketIdThe bucket id, we need it to have an overview of all values belonging to a batch. Stores the value recursively.

Definition at line 308 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Value\getHash(), ILIAS\BackgroundTasks\Value\getParentTask(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getTaskContainerId(), ILIAS\BackgroundTasks\Value\getType(), ILIAS\BackgroundTasks\Value\hasParentTask(), and ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveTask().

Referenced by ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\saveTask().

308  : void
309  {
310  // If we have previous values to task associations we delete them.
311  if ($this->valueHashToValueContainerId->contains($value)) {
312  $valueContainer = new ValueContainer($this->valueHashToValueContainerId[$value], $this->connector);
313  } else {
314  $valueContainer = new ValueContainer(0, $this->connector);
315  }
316  $valueContainer->setClassName($value::class);
317  // bugfix mantis 23503
318  // $absolute_class_path = $reflection->getFileName();
319  // $relative_class_path = str_replace(ILIAS_ABSOLUTE_PATH,".",$absolute_class_path);
320  // $valueContainer->setClassPath($relative_class_path);
321  $valueContainer->setType($value->getType());
322  $valueContainer->setHasParenttask($value->hasParentTask());
323  $valueContainer->setBucketId($bucketId);
324  $valueContainer->setPosition($position);
325  $valueContainer->setHash($value->getHash());
326  $valueContainer->setSerialized($value->serialize());
327 
328  // If the value is a thunk value we also store its parent.
329  if ($value->hasParentTask()) {
330  $this->saveTask($value->getParentTask(), $bucketId);
331  $valueContainer->setParentTaskid($this->getTaskContainerId($value->getParentTask()));
332  }
333 
334  // We save the container and store the instance to container association.
335  $valueContainer->save();
336  $this->valueHashToValueContainerId[$value] = $valueContainer->getId();
337  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setConnector()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::setConnector ( \arConnector  $c)

Definition at line 115 of file BasicPersistence.php.

References $c.

115  : void
116  {
117  $this->connector = $c;
118  }
$c
Definition: deliver.php:25

◆ updateBucket()

ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::updateBucket ( Bucket  $bucket)

Updates only the bucket! Use this if e.g.

the percentage or the current task changes.

Implements ILIAS\BackgroundTasks\Persistence.

Definition at line 134 of file BasicPersistence.php.

References ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getBucketContainerId(), ILIAS\BackgroundTasks\Bucket\getCurrentTask(), ILIAS\BackgroundTasks\Bucket\getDescription(), ILIAS\BackgroundTasks\Bucket\getLastHeartbeat(), ILIAS\BackgroundTasks\Bucket\getOverallPercentage(), ILIAS\BackgroundTasks\Bucket\getState(), ILIAS\BackgroundTasks\Bucket\getTask(), ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence\getTaskContainerId(), ILIAS\BackgroundTasks\Bucket\getTitle(), and ILIAS\BackgroundTasks\Bucket\getUserId().

134  : void
135  {
136  $bucketContainer = new BucketContainer($this->getBucketContainerId($bucket), $this->connector);
137 
138  // The basic information about the task.
139  $bucketContainer->setUserId($bucket->getUserId());
140  $bucketContainer->setState($bucket->getState());
141  $bucketContainer->setTotalNumberoftasks(count($bucket->getTask()->unfoldTask()));
142  $bucketContainer->setPercentage($bucket->getOverallPercentage());
143  $bucketContainer->setTitle($bucket->getTitle());
144  $bucketContainer->setLastHeartbeat($bucket->getLastHeartbeat());
145  $bucketContainer->setDescription($bucket->getDescription());
146  $bucketContainer->setCurrentTaskid($this->getTaskContainerId($bucket->getCurrentTask()));
147  $bucketContainer->setRootTaskid($this->getTaskContainerId($bucket->getTask()));
148 
149  // Save and store the container to bucket instance.
150  $bucketContainer->update();
151  }
+ Here is the call graph for this function:

Field Documentation

◆ $bucketHashToObserverContainerId

SplObjectStorage ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$bucketHashToObserverContainerId
protected

Definition at line 36 of file BasicPersistence.php.

◆ $buckets

◆ $connector

arConnector ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$connector = null
protected

Definition at line 39 of file BasicPersistence.php.

◆ $instance

BasicPersistence ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$instance
staticprotected

Definition at line 34 of file BasicPersistence.php.

◆ $taskHashToTaskContainerId

SplObjectStorage ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$taskHashToTaskContainerId
protected

Definition at line 37 of file BasicPersistence.php.

◆ $tasks

array ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$tasks = []
staticprotected

◆ $valueHashToValueContainerId

SplObjectStorage ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::$valueHashToValueContainerId
protected

Definition at line 38 of file BasicPersistence.php.


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