process control
Release 1.0.1 Packagist Ready
PHP worker instance create and inter process lock check Autoframe Framework
/** Concrete implementation that uses the php temporary folder to store the lock */
namespace AutoframeProcessControlLock;
class AfrLockFileClass implements AfrLockInterface
...
interface AfrLockInterface
{
/** Check if the lock is in place */
public function isLocked(): bool;
/** Creates a new lock or fails */
public function obtainLock(): bool;
/** Returns false if lock is in place and the lock file can't be closed
* Returns true if there is no lock in place or operation was successfully made */
public function releaseLock(): bool;
/** Returns Process ID for the lock thread or zero if other case */
public function getLockPid(): int;
}
/** Concrete implementation for create (spawn) worker process in background */
namespace AutoframeProcessControlWorkerBackground;
class AfrBackgroundWorkerClass implements AfrBackgroundWorkerInterface
...
interface AfrBackgroundWorkerInterface
{
/** Returns /usr/bin/php or C:xamppphpphp.exe or php */
public static function getPhpBin(): string;
/** Calls: php $execFileArgs > /dev/null & or widows equivalent start /B */
public static function execWithArgs(string $execFileArgs): void;
}