* SPDX-License-Identifier: AGPL-3.0-only ************************************/ /* crmv@208173 */ /** * Time based Queue of tasks ready for execution. * */ class VTTaskQueue{ public function __construct($adb){ $this->adb = $adb; } /** * Get a list of taskId/entityId pairs ready for execution. * * The method fetches task id/entity id where the when timestamp * is less than the current time when the method was called. * * @return array list of pairs of the form array(taskId, entityId) */ public function getReadyTasks(){ global $table_prefix; $adb = $this->adb; $time = time(); $result = $adb->pquery("select task_id, entity_id from com_{$table_prefix}_workflowtask_queue where do_aftertask_id, $row->entity_id]; } $adb->pquery("delete from com_{$table_prefix}_workflowtask_queue where do_afteradb; global $table_prefix; $result = $adb->pquery("select * from com_{$table_prefix}_workflowtask_queue where task_id=? and entity_id=?", array($taskId, $entityId)); if($adb->num_rows($result)==1){ return false; }else{ $adb->pquery("insert into com_{$table_prefix}_workflowtask_queue (task_id, entity_id, do_after) values (?,?,?)", array($taskId, $entityId, $when)); return true; } } }