1
0
Fork 0
mirror of synced 2024-06-03 03:14:50 +12:00
appwrite/src/Appwrite/Resque/Worker.php
2021-03-10 10:08:17 +02:00

46 lines
795 B
PHP

<?php
namespace Appwrite\Resque;
use Swoole\Runtime;
use function Swoole\Coroutine\run;
abstract class Worker
{
public $args = [];
abstract public function init(): void;
abstract public function execute(): void;
abstract public function shutdown(): void;
public function setUp(): void
{
run(function() {
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
$this->init();
});
}
public function perform()
{
run(function() {
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
$this->execute();
});
}
public function tearDown(): void
{
run(function() {
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
$this->shutdown();
});
}
}