Hook calls can now be forked into a worker queue entry
This commit is contained in:
@@ -6,6 +6,7 @@ namespace Friendica\Core;
|
||||
|
||||
use Friendica\Core\Config;
|
||||
use Friendica\Database\DBM;
|
||||
use Friendica\Core\Worker;
|
||||
|
||||
use dba;
|
||||
|
||||
@@ -185,6 +186,25 @@ class Addon
|
||||
dba::close($r);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Forks a hook.
|
||||
*
|
||||
* Use this function when you want to fork a hook via the worker.
|
||||
*
|
||||
* @param string $name of the hook to call
|
||||
* @param string|array $data to transmit to the callback handler
|
||||
*/
|
||||
public static function ForkHooks($priority, $name, $data = null)
|
||||
{
|
||||
$a = get_app();
|
||||
|
||||
if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) {
|
||||
foreach ($a->hooks[$name] as $hook) {
|
||||
Worker::add($priority, 'ForkHook', $name, json_encode($hook), json_encode($data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Calls a hook.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user