1
0
Fork 0
mirror of synced 2024-07-01 04:30:59 +12:00
appwrite/src/Appwrite/Resque/Worker.php

46 lines
795 B
PHP
Raw Normal View History

2021-03-10 21:08:17 +13:00
<?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();
});
}
}