modifs.mineures sans commentaires
This commit is contained in:
parent
51f8ae487a
commit
7d9039bcb1
110
wip/app/app2.php
110
wip/app/app2.php
|
@ -14,60 +14,6 @@ use nur\sery\wip\app\cli\Application;
|
||||||
|
|
||||||
#XXX une réécriture de app, qui remplacera app à terme
|
#XXX une réécriture de app, qui remplacera app à terme
|
||||||
class app2 {
|
class app2 {
|
||||||
static ?func $bgapplication_enabled = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* spécifier la fonction permettant de vérifier si l'exécution de tâches
|
|
||||||
* de fond est autorisée. Si cette méthode n'est pas utilisée, par défaut,
|
|
||||||
* les tâches planifiées sont autorisées
|
|
||||||
*
|
|
||||||
* si $func===true, spécifier une fonction qui retourne toujours vrai
|
|
||||||
* si $func===false, spécifiée une fonction qui retourne toujours faux
|
|
||||||
* sinon, $func doit être une fonction valide
|
|
||||||
*/
|
|
||||||
static function set_bgapplication_enabled($func): void {
|
|
||||||
if (is_bool($func)) {
|
|
||||||
$enabled = $func;
|
|
||||||
$func = function () use ($enabled) {
|
|
||||||
return $enabled;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
self::$bgapplication_enabled = func::with($func);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Si les exécutions en tâche de fond sont autorisée, retourner. Sinon
|
|
||||||
* afficher une erreur et quitter l'application
|
|
||||||
*/
|
|
||||||
static function check_bgapplication_enabled(bool $forceEnabled=false): void {
|
|
||||||
if (self::$bgapplication_enabled === null) return;
|
|
||||||
$enabled = boolval(self::$bgapplication_enabled->invoke());
|
|
||||||
if (!$forceEnabled && !$enabled) {
|
|
||||||
msg::debug("Planifications désactivées. La tâche n'a pas été lancée");
|
|
||||||
throw new ExitError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool $dispach_signals = false;
|
|
||||||
|
|
||||||
static function install_signal_handler(bool $allow=true): void {
|
|
||||||
if (!$allow) return;
|
|
||||||
$signalHandler = function(int $signo, $siginfo) {
|
|
||||||
throw new ExitError(255);
|
|
||||||
};
|
|
||||||
pcntl_signal(SIGHUP, $signalHandler);
|
|
||||||
pcntl_signal(SIGINT, $signalHandler);
|
|
||||||
pcntl_signal(SIGQUIT, $signalHandler);
|
|
||||||
pcntl_signal(SIGTERM, $signalHandler);
|
|
||||||
self::$dispach_signals = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function _dispatch_signals() {
|
|
||||||
if (self::$dispach_signals) pcntl_signal_dispatch();
|
|
||||||
}
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
private static function isa_Application($app): bool {
|
private static function isa_Application($app): bool {
|
||||||
if (!is_string($app)) return false;
|
if (!is_string($app)) return false;
|
||||||
return $app === Application::class || is_subclass_of($app, Application::class);
|
return $app === Application::class || is_subclass_of($app, Application::class);
|
||||||
|
@ -527,4 +473,60 @@ class app2 {
|
||||||
$this->lockFiles[$name] ??= $this->getRunfile()->getLockFile($name, $this->title);
|
$this->lockFiles[$name] ??= $this->getRunfile()->getLockFile($name, $this->title);
|
||||||
return $this->lockFiles[$name];
|
return $this->lockFiles[$name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
static bool $dispach_signals = false;
|
||||||
|
|
||||||
|
static function install_signal_handler(bool $allow=true): void {
|
||||||
|
if (!$allow) return;
|
||||||
|
$signalHandler = function(int $signo, $siginfo) {
|
||||||
|
throw new ExitError(255);
|
||||||
|
};
|
||||||
|
pcntl_signal(SIGHUP, $signalHandler);
|
||||||
|
pcntl_signal(SIGINT, $signalHandler);
|
||||||
|
pcntl_signal(SIGQUIT, $signalHandler);
|
||||||
|
pcntl_signal(SIGTERM, $signalHandler);
|
||||||
|
self::$dispach_signals = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function _dispatch_signals() {
|
||||||
|
if (self::$dispach_signals) pcntl_signal_dispatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
static ?func $bgapplication_enabled = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* spécifier la fonction permettant de vérifier si l'exécution de tâches
|
||||||
|
* de fond est autorisée. Si cette méthode n'est pas utilisée, par défaut,
|
||||||
|
* les tâches planifiées sont autorisées
|
||||||
|
*
|
||||||
|
* si $func===true, spécifier une fonction qui retourne toujours vrai
|
||||||
|
* si $func===false, spécifiée une fonction qui retourne toujours faux
|
||||||
|
* sinon, $func doit être une fonction valide
|
||||||
|
*/
|
||||||
|
static function set_bgapplication_enabled($func): void {
|
||||||
|
if (is_bool($func)) {
|
||||||
|
$enabled = $func;
|
||||||
|
$func = function () use ($enabled) {
|
||||||
|
return $enabled;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
self::$bgapplication_enabled = func::with($func);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Si les exécutions en tâche de fond sont autorisée, retourner. Sinon
|
||||||
|
* afficher une erreur et quitter l'application
|
||||||
|
*/
|
||||||
|
static function check_bgapplication_enabled(bool $forceEnabled=false): void {
|
||||||
|
if (self::$bgapplication_enabled === null) return;
|
||||||
|
$enabled = boolval(self::$bgapplication_enabled->invoke());
|
||||||
|
if (!$forceEnabled && !$enabled) {
|
||||||
|
msg::debug("Planifications désactivées. La tâche n'a pas été lancée");
|
||||||
|
throw new ExitError();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue