mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge pull request #966 from appwrite/feat-265-realtime-resources
Refactored resources
This commit is contained in:
+3
-2
@@ -29,7 +29,8 @@ RUN \
|
||||
git \
|
||||
zlib-dev \
|
||||
brotli-dev \
|
||||
libmaxminddb-dev
|
||||
libmaxminddb-dev \
|
||||
openssl-dev
|
||||
|
||||
RUN docker-php-ext-install sockets
|
||||
|
||||
@@ -47,7 +48,7 @@ RUN \
|
||||
cd swoole-src && \
|
||||
git checkout $PHP_SWOOLE_VERSION && \
|
||||
phpize && \
|
||||
./configure --enable-sockets --enable-http2 && \
|
||||
./configure --enable-sockets --enable-http2 --enable-openssl && \
|
||||
make && make install && \
|
||||
cd .. && \
|
||||
## Maxminddb extension
|
||||
|
||||
+17
-21
@@ -15,11 +15,23 @@ use Utopia\CLI\Console;
|
||||
|
||||
// xdebug_start_trace('/tmp/trace');
|
||||
|
||||
ini_set('memory_limit','512M');
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
ini_set('default_socket_timeout', -1);
|
||||
error_reporting(E_ALL);
|
||||
Files::load(__DIR__ . '/../public');
|
||||
|
||||
include __DIR__ . '/controllers/general.php';
|
||||
|
||||
$domain = App::getEnv('_APP_DOMAIN', '');
|
||||
|
||||
Console::info('Issuing a TLS certificate for the master domain ('.$domain.') in 30 seconds.
|
||||
Make sure your domain points to your server IP or restart your Appwrite server to try again.'); // TODO move this to installation script
|
||||
|
||||
ResqueScheduler::enqueueAt(\time() + 30, 'v1-certificates', 'CertificatesV1', [
|
||||
'document' => [],
|
||||
'domain' => $domain,
|
||||
'validateTarget' => false,
|
||||
'validateCNAME' => false,
|
||||
]);
|
||||
|
||||
Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
|
||||
|
||||
$http = new Server("0.0.0.0", App::getEnv('PORT', 80));
|
||||
|
||||
@@ -61,22 +73,6 @@ $http->on('start', function (Server $http) use ($payloadSize) {
|
||||
});
|
||||
});
|
||||
|
||||
Files::load(__DIR__ . '/../public');
|
||||
|
||||
include __DIR__ . '/controllers/general.php';
|
||||
|
||||
$domain = App::getEnv('_APP_DOMAIN', '');
|
||||
|
||||
Console::info('Issuing a TLS certificate for the master domain ('.$domain.') in 30 seconds.
|
||||
Make sure your domain points to your server IP or restart your Appwrite server to try again.'); // TODO move this to installation script
|
||||
|
||||
ResqueScheduler::enqueueAt(\time() + 30, 'v1-certificates', 'CertificatesV1', [
|
||||
'document' => [],
|
||||
'domain' => $domain,
|
||||
'validateTarget' => false,
|
||||
'validateCNAME' => false,
|
||||
]);
|
||||
|
||||
$http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swooleResponse) {
|
||||
$request = new Request($swooleRequest);
|
||||
$response = new Response($swooleResponse);
|
||||
|
||||
+59
-19
@@ -11,6 +11,12 @@ if (\file_exists(__DIR__.'/../vendor/autoload.php')) {
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
}
|
||||
|
||||
ini_set('memory_limit','512M');
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
ini_set('default_socket_timeout', -1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
use Ahc\Jwt\JWT;
|
||||
use Ahc\Jwt\JWTException;
|
||||
use Appwrite\Auth\Auth;
|
||||
@@ -21,7 +27,6 @@ use Appwrite\Database\Document;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Event\Event;
|
||||
use Appwrite\Event\Realtime;
|
||||
use Appwrite\Extend\PDO;
|
||||
use Appwrite\OpenSSL\OpenSSL;
|
||||
use Utopia\App;
|
||||
use Utopia\View;
|
||||
@@ -31,6 +36,10 @@ use Utopia\Registry\Registry;
|
||||
use MaxMind\Db\Reader;
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PDO as PDONative;
|
||||
use Swoole\Database\PDOConfig;
|
||||
use Swoole\Database\PDOPool;
|
||||
use Swoole\Database\RedisConfig;
|
||||
use Swoole\Database\RedisPool;
|
||||
|
||||
const APP_NAME = 'Appwrite';
|
||||
const APP_DOMAIN = 'appwrite.io';
|
||||
@@ -139,7 +148,28 @@ Database::addFilter('encrypt',
|
||||
/*
|
||||
* Registry
|
||||
*/
|
||||
$register->set('db', function () { // Register DB connection
|
||||
$register->set('dbPool', function () { // Register DB connection
|
||||
$config = new PDOConfig();
|
||||
$config
|
||||
->withHost(App::getEnv('_APP_DB_HOST', ''))
|
||||
->withPort(App::getEnv('_APP_DB_PORT', ''))
|
||||
->withDbName(App::getEnv('_APP_DB_SCHEMA', ''))
|
||||
->withUsername(App::getEnv('_APP_DB_USER', ''))
|
||||
->withPassword(App::getEnv('_APP_DB_PASS', ''))
|
||||
->withCharset('utf8mb4')
|
||||
->withOptions([
|
||||
PDONative::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
|
||||
PDONative::ATTR_TIMEOUT => 3, // Seconds
|
||||
PDONative::ATTR_PERSISTENT => true,
|
||||
PDONative::ATTR_DEFAULT_FETCH_MODE => PDONative::FETCH_ASSOC,
|
||||
PDONative::ATTR_ERRMODE => PDONative::ERRMODE_EXCEPTION,
|
||||
]);
|
||||
|
||||
$pool = new PDOPool($config);
|
||||
|
||||
return $pool;
|
||||
});
|
||||
$register->set('db', function () use ($register) {
|
||||
$dbHost = App::getEnv('_APP_DB_HOST', '');
|
||||
$dbUser = App::getEnv('_APP_DB_USER', '');
|
||||
$dbPass = App::getEnv('_APP_DB_PASS', '');
|
||||
@@ -148,13 +178,11 @@ $register->set('db', function () { // Register DB connection
|
||||
$pdo = new PDO("mysql:host={$dbHost};dbname={$dbScheme};charset=utf8mb4", $dbUser, $dbPass, array(
|
||||
PDONative::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
|
||||
PDONative::ATTR_TIMEOUT => 3, // Seconds
|
||||
PDONative::ATTR_PERSISTENT => true
|
||||
PDONative::ATTR_PERSISTENT => true,
|
||||
PDONative::ATTR_DEFAULT_FETCH_MODE => PDONative::FETCH_ASSOC,
|
||||
PDONative::ATTR_ERRMODE => PDONative::ERRMODE_EXCEPTION,
|
||||
));
|
||||
|
||||
// Connection settings
|
||||
$pdo->setAttribute(PDONative::ATTR_DEFAULT_FETCH_MODE, PDONative::FETCH_ASSOC); // Return arrays
|
||||
$pdo->setAttribute(PDONative::ATTR_ERRMODE, PDONative::ERRMODE_EXCEPTION); // Handle all errors with exceptions
|
||||
|
||||
return $pdo;
|
||||
});
|
||||
$register->set('influxdb', function () { // Register DB connection
|
||||
@@ -178,21 +206,33 @@ $register->set('statsd', function () { // Register DB connection
|
||||
|
||||
return $statsd;
|
||||
});
|
||||
$register->set('redisPool', function () {
|
||||
$user = App::getEnv('_APP_REDIS_USER', '');
|
||||
$pass = App::getEnv('_APP_REDIS_PASS', '');
|
||||
$auth = '';
|
||||
if (!empty($user)) {
|
||||
$auth += $user;
|
||||
}
|
||||
if (!empty($pass)) {
|
||||
$auth += ':' . $pass;
|
||||
}
|
||||
|
||||
$config = new RedisConfig();
|
||||
$config
|
||||
->withHost(App::getEnv('_APP_REDIS_HOST', ''))
|
||||
->withPort(App::getEnv('_APP_REDIS_PORT', ''))
|
||||
->withAuth($auth)
|
||||
->withTimeout(0)
|
||||
->withReadTimeout(0)
|
||||
->withRetryInterval(0);
|
||||
|
||||
$pool = new RedisPool($config);
|
||||
|
||||
return $pool;
|
||||
});
|
||||
$register->set('cache', function () { // Register cache connection
|
||||
$redis = new Redis();
|
||||
$redis->pconnect(App::getEnv('_APP_REDIS_HOST', ''), App::getEnv('_APP_REDIS_PORT', ''));
|
||||
$user = App::getEnv('_APP_REDIS_USER','');
|
||||
$pass = App::getEnv('_APP_REDIS_PASS','');
|
||||
$auth = [];
|
||||
if(!empty($user)) {
|
||||
$auth["user"] = $user;
|
||||
}
|
||||
if(!empty($pass)) {
|
||||
$auth["pass"] = $pass;
|
||||
}
|
||||
if(!empty($auth)) {
|
||||
$redis->auth($auth);
|
||||
}
|
||||
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
|
||||
|
||||
return $redis;
|
||||
|
||||
+19
-10
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . '/init.php';
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use Appwrite\Network\Validator\Origin;
|
||||
use Appwrite\Realtime\Realtime;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Swoole\WebSocket\Server;
|
||||
use Swoole\Process;
|
||||
use Swoole\Http\Request;
|
||||
use Swoole\Http\Response as SwooleResponse;
|
||||
use Swoole\Process;
|
||||
use Swoole\WebSocket\Frame;
|
||||
use Swoole\WebSocket\Server;
|
||||
use Utopia\App;
|
||||
use Utopia\CLI\Console;
|
||||
use Utopia\Swoole\Request as SwooleRequest;
|
||||
@@ -26,9 +25,22 @@ use Utopia\Abuse\Adapters\TimeLimit;
|
||||
* - Websocket support: https://www.swoole.co.uk/docs/modules/swoole-websocket-server
|
||||
*/
|
||||
|
||||
ini_set('default_socket_timeout', -1);
|
||||
Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
|
||||
|
||||
$register->set('db', function () use ($register) {
|
||||
$pool = $register->get('dbPool');
|
||||
$pdo = $pool->get()->__getObject();
|
||||
|
||||
return $pdo;
|
||||
}, true);
|
||||
|
||||
$register->set('cache', function () use ($register) { // Register cache connection
|
||||
$redis = $register->get('redisPool')->get();
|
||||
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
|
||||
|
||||
return $redis;
|
||||
}, true);
|
||||
|
||||
$server = new Server('0.0.0.0', 80);
|
||||
|
||||
$server->set([
|
||||
@@ -39,13 +51,11 @@ $subscriptions = [];
|
||||
$connections = [];
|
||||
|
||||
$server->on('workerStart', function ($server, $workerId) use (&$subscriptions, &$connections, &$register) {
|
||||
Console::success('Worker ' . ++$workerId . ' started succefully');
|
||||
|
||||
Console::success('Worker ' . $workerId . ' started succefully');
|
||||
|
||||
$attempts = 0;
|
||||
$start = time();
|
||||
|
||||
// $register->context('realtime-' . $workerId);
|
||||
|
||||
while ($attempts < 300) {
|
||||
try {
|
||||
if ($attempts > 0) {
|
||||
@@ -54,8 +64,7 @@ $server->on('workerStart', function ($server, $workerId) use (&$subscriptions, &
|
||||
sleep(5); // 5 sec delay between connection attempts
|
||||
}
|
||||
|
||||
$redis = $register->get('cache', true);
|
||||
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
|
||||
$redis = $register->get('cache');
|
||||
|
||||
if ($redis->ping(true)) {
|
||||
$attempts = 0;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Appwrite\Resque\Worker;
|
||||
use Utopia\Audit\Audit;
|
||||
use Utopia\Audit\Adapters\MySQL as AuditAdapter;
|
||||
use Utopia\CLI\Console;
|
||||
@@ -10,15 +11,15 @@ Console::title('Audits V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' audits worker v1 has started');
|
||||
|
||||
class AuditsV1
|
||||
class AuditsV1 extends Worker
|
||||
{
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -39,7 +40,7 @@ class AuditsV1
|
||||
$audit->log($userId, $event, $resource, $userAgent, $ip, '', $data);
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ use Appwrite\Database\Adapter\MySQL as MySQLAdapter;
|
||||
use Appwrite\Database\Adapter\Redis as RedisAdapter;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Network\Validator\CNAME;
|
||||
use Appwrite\Resque\Worker;
|
||||
|
||||
require_once __DIR__.'/../init.php';
|
||||
|
||||
@@ -16,15 +17,15 @@ Console::title('Certificates V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' certificates worker v1 has started');
|
||||
|
||||
class CertificatesV1
|
||||
class CertificatesV1 extends Worker
|
||||
{
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -204,8 +205,7 @@ class CertificatesV1
|
||||
Authorization::reset();
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ use Appwrite\Database\Adapter\MySQL as MySQLAdapter;
|
||||
use Appwrite\Database\Adapter\Redis as RedisAdapter;
|
||||
use Appwrite\Database\Document;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Resque\Worker;
|
||||
use Utopia\Storage\Device\Local;
|
||||
use Utopia\Abuse\Abuse;
|
||||
use Utopia\Abuse\Adapters\TimeLimit;
|
||||
@@ -19,18 +20,17 @@ Console::title('Deletes V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' deletes worker v1 has started'."\n");
|
||||
|
||||
class DeletesV1
|
||||
class DeletesV1 extends Worker
|
||||
{
|
||||
|
||||
public $args = [];
|
||||
|
||||
protected $consoleDB = null;
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
$projectId = $this->args['projectId'];
|
||||
$type = $this->args['type'];
|
||||
@@ -82,9 +82,8 @@ class DeletesV1
|
||||
}
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
|
||||
protected function deleteDocuments(Document $document, $projectId)
|
||||
|
||||
@@ -6,6 +6,7 @@ use Appwrite\Database\Adapter\MySQL as MySQLAdapter;
|
||||
use Appwrite\Database\Adapter\Redis as RedisAdapter;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Event\Event;
|
||||
use Appwrite\Resque\Worker;
|
||||
use Cron\CronExpression;
|
||||
use Swoole\Runtime;
|
||||
use Utopia\App;
|
||||
@@ -127,17 +128,17 @@ Console::info(count($list)." functions listed in " . ($executionEnd - $execution
|
||||
|
||||
//TODO aviod scheduled execution if delay is bigger than X offest
|
||||
|
||||
class FunctionsV1
|
||||
class FunctionsV1 extends Worker
|
||||
{
|
||||
public $args = [];
|
||||
|
||||
public $allowed = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -195,7 +196,7 @@ class FunctionsV1
|
||||
|
||||
Console::success('Triggered function: '.$event);
|
||||
|
||||
$this->execute('event', $projectId, '', $database, $function, $event, $payload);
|
||||
$this->run('event', $projectId, '', $database, $function, $event, $payload);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -251,7 +252,7 @@ class FunctionsV1
|
||||
'scheduleOriginal' => $function->getAttribute('schedule', ''),
|
||||
]); // Async task rescheduale
|
||||
|
||||
$this->execute($trigger, $projectId, $executionId, $database, $function);
|
||||
$this->run($trigger, $projectId, $executionId, $database, $function);
|
||||
|
||||
break;
|
||||
|
||||
@@ -264,7 +265,7 @@ class FunctionsV1
|
||||
throw new Exception('Function not found ('.$functionId.')');
|
||||
}
|
||||
|
||||
$this->execute($trigger, $projectId, $executionId, $database, $function);
|
||||
$this->run($trigger, $projectId, $executionId, $database, $function);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -286,7 +287,7 @@ class FunctionsV1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function execute(string $trigger, string $projectId, string $executionId, Database $database, Document $function, string $event = '', string $payload = ''): void
|
||||
public function run(string $trigger, string $projectId, string $executionId, Database $database, Document $function, string $event = '', string $payload = ''): void
|
||||
{
|
||||
global $list;
|
||||
|
||||
@@ -548,7 +549,7 @@ class FunctionsV1
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Appwrite\Resque\Worker;
|
||||
use Utopia\App;
|
||||
use Utopia\CLI\Console;
|
||||
|
||||
@@ -9,18 +10,18 @@ Console::title('Mails V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' mails worker v1 has started'."\n");
|
||||
|
||||
class MailsV1
|
||||
class MailsV1 extends Worker
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -69,8 +70,7 @@ class MailsV1
|
||||
}
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use Appwrite\Database\Database;
|
||||
use Appwrite\Database\Adapter\MySQL as MySQLAdapter;
|
||||
use Appwrite\Database\Adapter\Redis as RedisAdapter;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Resque\Worker;
|
||||
use Cron\CronExpression;
|
||||
|
||||
require_once __DIR__.'/../init.php';
|
||||
@@ -15,18 +16,18 @@ Console::title('Tasks V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' tasks worker v1 has started');
|
||||
|
||||
class TasksV1
|
||||
class TasksV1 extends Worker
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -73,11 +74,11 @@ class TasksV1
|
||||
}
|
||||
|
||||
if ($task->getAttribute('updated') !== $updated) { // Task have already been rescheduled by owner
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($task->getAttribute('status') !== 'play') { // Skip task and don't schedule again
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Reschedule
|
||||
@@ -202,11 +203,10 @@ class TasksV1
|
||||
|
||||
// Send alert if needed (use SMTP as default for now)
|
||||
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Appwrite\Resque\Worker;
|
||||
use Utopia\App;
|
||||
use Utopia\CLI\Console;
|
||||
|
||||
@@ -9,18 +10,18 @@ Console::title('Usage V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' usage worker v1 has started');
|
||||
|
||||
class UsageV1
|
||||
class UsageV1 extends Worker
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -65,8 +66,7 @@ class UsageV1
|
||||
}
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use Appwrite\Database\Database;
|
||||
use Appwrite\Database\Adapter\MySQL as MySQLAdapter;
|
||||
use Appwrite\Database\Adapter\Redis as RedisAdapter;
|
||||
use Appwrite\Database\Validator\Authorization;
|
||||
use Appwrite\Resque\Worker;
|
||||
|
||||
require_once __DIR__.'/../init.php';
|
||||
|
||||
@@ -14,15 +15,15 @@ Console::title('Webhooks V1 Worker');
|
||||
|
||||
Console::success(APP_NAME.' webhooks worker v1 has started');
|
||||
|
||||
class WebhooksV1
|
||||
class WebhooksV1 extends Worker
|
||||
{
|
||||
public $args = [];
|
||||
|
||||
public function setUp(): void
|
||||
public function init(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function perform()
|
||||
public function execute(): void
|
||||
{
|
||||
global $register;
|
||||
|
||||
@@ -111,8 +112,7 @@ class WebhooksV1
|
||||
}
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function shutdown(): void
|
||||
{
|
||||
// ... Remove environment for this job
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@
|
||||
"utopia-php/cli": "0.10.0",
|
||||
"utopia-php/config": "0.2.*",
|
||||
"utopia-php/locale": "0.3.*",
|
||||
"utopia-php/registry": "0.2.*",
|
||||
"utopia-php/registry": "master",
|
||||
"utopia-php/preloader": "0.2.*",
|
||||
"utopia-php/domains": "0.2.*",
|
||||
"utopia-php/swoole": "0.2.*",
|
||||
|
||||
Generated
+116
-127
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "7f55eb794a021679abe652b85e3c0134",
|
||||
"content-hash": "b579d6ac34eb119446727d63b21acca2",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
@@ -521,12 +521,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "ddfeedfff2a52661429437da0702979f708e6ac6"
|
||||
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/ddfeedfff2a52661429437da0702979f708e6ac6",
|
||||
"reference": "ddfeedfff2a52661429437da0702979f708e6ac6",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -567,9 +567,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/promises/issues",
|
||||
"source": "https://github.com/guzzle/promises/tree/master"
|
||||
"source": "https://github.com/guzzle/promises/tree/1.4.1"
|
||||
},
|
||||
"time": "2020-10-19T16:50:15+00:00"
|
||||
"time": "2021-03-07T09:25:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
@@ -577,12 +577,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976"
|
||||
"reference": "d7fe0a0eabc266c3dcf2f20aa12121044ff196a4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976",
|
||||
"reference": "2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/d7fe0a0eabc266c3dcf2f20aa12121044ff196a4",
|
||||
"reference": "d7fe0a0eabc266c3dcf2f20aa12121044ff196a4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -644,7 +644,7 @@
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.x"
|
||||
},
|
||||
"time": "2021-03-02T18:57:24+00:00"
|
||||
"time": "2021-03-09T14:42:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "influxdb/influxdb-php",
|
||||
@@ -1850,25 +1850,26 @@
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/registry",
|
||||
"version": "0.2.4",
|
||||
"version": "dev-master",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/registry.git",
|
||||
"reference": "428a94f1a36147e7b7221e778c01e1be08db2893"
|
||||
"reference": "7aebbc6c5f3f04ff7a35ac3dad39fa91c9bd7c2d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/registry/zipball/428a94f1a36147e7b7221e778c01e1be08db2893",
|
||||
"reference": "428a94f1a36147e7b7221e778c01e1be08db2893",
|
||||
"url": "https://api.github.com/repos/utopia-php/registry/zipball/7aebbc6c5f3f04ff7a35ac3dad39fa91c9bd7c2d",
|
||||
"reference": "7aebbc6c5f3f04ff7a35ac3dad39fa91c9bd7c2d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.3"
|
||||
"php": ">=7.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"vimeo/psalm": "4.0.1"
|
||||
},
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
@@ -1896,27 +1897,27 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/registry/issues",
|
||||
"source": "https://github.com/utopia-php/registry/tree/0.2.4"
|
||||
"source": "https://github.com/utopia-php/registry/tree/0.4.0"
|
||||
},
|
||||
"time": "2020-10-24T08:51:37+00:00"
|
||||
"time": "2021-03-10T06:50:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/storage",
|
||||
"version": "0.4.1",
|
||||
"version": "0.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/storage.git",
|
||||
"reference": "86f749f2d79268528732e560f77dde0155e162ca"
|
||||
"reference": "9db3ab713a6d392c3c2c799aeea751f6c8dc2ff7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/storage/zipball/86f749f2d79268528732e560f77dde0155e162ca",
|
||||
"reference": "86f749f2d79268528732e560f77dde0155e162ca",
|
||||
"url": "https://api.github.com/repos/utopia-php/storage/zipball/9db3ab713a6d392c3c2c799aeea751f6c8dc2ff7",
|
||||
"reference": "9db3ab713a6d392c3c2c799aeea751f6c8dc2ff7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.4",
|
||||
"utopia-php/framework": "0.10.0"
|
||||
"utopia-php/framework": "0.*.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.3",
|
||||
@@ -1948,9 +1949,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/storage/issues",
|
||||
"source": "https://github.com/utopia-php/storage/tree/0.4.1"
|
||||
"source": "https://github.com/utopia-php/storage/tree/0.4.3"
|
||||
},
|
||||
"time": "2021-02-19T05:04:44+00:00"
|
||||
"time": "2021-03-02T20:25:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/swoole",
|
||||
@@ -2065,20 +2066,20 @@
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "dev-master",
|
||||
"version": "1.9.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozarts/assert.git",
|
||||
"reference": "9c89b265ccc4092d58e66d72af5d343ee77a41ae"
|
||||
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/9c89b265ccc4092d58e66d72af5d343ee77a41ae",
|
||||
"reference": "9c89b265ccc4092d58e66d72af5d343ee77a41ae",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
||||
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"php": "^5.3.3 || ^7.0 || ^8.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"conflict": {
|
||||
@@ -2086,15 +2087,9 @@
|
||||
"vimeo/psalm": "<3.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.13"
|
||||
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
||||
},
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.10-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\": "src/"
|
||||
@@ -2118,9 +2113,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/webmozarts/assert/issues",
|
||||
"source": "https://github.com/webmozarts/assert/tree/master"
|
||||
"source": "https://github.com/webmozarts/assert/tree/1.9.1"
|
||||
},
|
||||
"time": "2021-01-18T12:52:36+00:00"
|
||||
"time": "2020-07-08T17:02:28+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -3279,12 +3274,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||
"reference": "e3324ecbde7319b0bbcf0fd7ca4af19469c38da9"
|
||||
"reference": "f8d350d8514ff60b5993dd0121c62299480c989c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e3324ecbde7319b0bbcf0fd7ca4af19469c38da9",
|
||||
"reference": "e3324ecbde7319b0bbcf0fd7ca4af19469c38da9",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f8d350d8514ff60b5993dd0121c62299480c989c",
|
||||
"reference": "f8d350d8514ff60b5993dd0121c62299480c989c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3328,7 +3323,7 @@
|
||||
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
|
||||
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
|
||||
},
|
||||
"time": "2020-11-18T14:27:38+00:00"
|
||||
"time": "2021-03-07T11:12:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
@@ -3530,12 +3525,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
||||
"reference": "dae425925709122f7584cadeeb838edcaa491bb1"
|
||||
"reference": "330949c62cbc3e44120990701c949e59a4f3e141"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/dae425925709122f7584cadeeb838edcaa491bb1",
|
||||
"reference": "dae425925709122f7584cadeeb838edcaa491bb1",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/330949c62cbc3e44120990701c949e59a4f3e141",
|
||||
"reference": "330949c62cbc3e44120990701c949e59a4f3e141",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3583,7 +3578,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:43+00:00"
|
||||
"time": "2021-03-10T06:29:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-invoker",
|
||||
@@ -3591,12 +3586,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-invoker.git",
|
||||
"reference": "5ad9e5f5d6ee1a837e1d50bab1017e0daf423b40"
|
||||
"reference": "fe3276f5cd81d19a8e8ef90a32855545f7aae7cb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5ad9e5f5d6ee1a837e1d50bab1017e0daf423b40",
|
||||
"reference": "5ad9e5f5d6ee1a837e1d50bab1017e0daf423b40",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/fe3276f5cd81d19a8e8ef90a32855545f7aae7cb",
|
||||
"reference": "fe3276f5cd81d19a8e8ef90a32855545f7aae7cb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3647,7 +3642,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:51+00:00"
|
||||
"time": "2021-03-10T06:29:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-text-template",
|
||||
@@ -3655,12 +3650,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
||||
"reference": "4ec5a2ac79a19b35d0cf83cce30604f77743067a"
|
||||
"reference": "11d864dc75b7f73d1e03361bff717894587f3987"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/4ec5a2ac79a19b35d0cf83cce30604f77743067a",
|
||||
"reference": "4ec5a2ac79a19b35d0cf83cce30604f77743067a",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/11d864dc75b7f73d1e03361bff717894587f3987",
|
||||
"reference": "11d864dc75b7f73d1e03361bff717894587f3987",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3707,7 +3702,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:49:24+00:00"
|
||||
"time": "2021-03-10T06:29:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-timer",
|
||||
@@ -3715,12 +3710,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
||||
"reference": "705821b0927b5e69e9e016c84de68dc6195c71b9"
|
||||
"reference": "95242c4aa540e9b3655c7edbe8f76d55ac237b7b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/705821b0927b5e69e9e016c84de68dc6195c71b9",
|
||||
"reference": "705821b0927b5e69e9e016c84de68dc6195c71b9",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/95242c4aa540e9b3655c7edbe8f76d55ac237b7b",
|
||||
"reference": "95242c4aa540e9b3655c7edbe8f76d55ac237b7b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3767,7 +3762,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:59+00:00"
|
||||
"time": "2021-03-10T06:29:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
@@ -3874,28 +3869,22 @@
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "dev-master",
|
||||
"version": "1.1.x-dev",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/container.git",
|
||||
"reference": "381524e8568e07f31d504a945b88556548c8c42e"
|
||||
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/381524e8568e07f31d504a945b88556548c8c42e",
|
||||
"reference": "381524e8568e07f31d504a945b88556548c8c42e",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
|
||||
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.0"
|
||||
},
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Container\\": "src/"
|
||||
@@ -3922,9 +3911,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-fig/container/issues",
|
||||
"source": "https://github.com/php-fig/container/tree/master"
|
||||
"source": "https://github.com/php-fig/container/tree/1.1.x"
|
||||
},
|
||||
"time": "2020-10-13T07:07:53+00:00"
|
||||
"time": "2021-03-05T17:36:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@@ -3932,12 +3921,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/cli-parser.git",
|
||||
"reference": "3a42d843af4d27ca1155e1d926881af162733655"
|
||||
"reference": "c8472024d13a267ba49f4c1e194a01cba5b094f5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/3a42d843af4d27ca1155e1d926881af162733655",
|
||||
"reference": "3a42d843af4d27ca1155e1d926881af162733655",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c8472024d13a267ba49f4c1e194a01cba5b094f5",
|
||||
"reference": "c8472024d13a267ba49f4c1e194a01cba5b094f5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3981,7 +3970,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:49:50+00:00"
|
||||
"time": "2021-03-10T06:30:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/code-unit",
|
||||
@@ -4045,12 +4034,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
|
||||
"reference": "5f5db0b35f586eb5bca0581a10bb42dd56575986"
|
||||
"reference": "84710fb3a027eb62978539705a0cd00713d474c8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5f5db0b35f586eb5bca0581a10bb42dd56575986",
|
||||
"reference": "5f5db0b35f586eb5bca0581a10bb42dd56575986",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/84710fb3a027eb62978539705a0cd00713d474c8",
|
||||
"reference": "84710fb3a027eb62978539705a0cd00713d474c8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4093,7 +4082,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:47:39+00:00"
|
||||
"time": "2021-03-10T06:28:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
@@ -4101,12 +4090,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "dbc5fb421f242a5749845dc8dd0dc8cde2979dd9"
|
||||
"reference": "5dfac003e3be0ca24000cee2a2e19ba2f21aa8f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dbc5fb421f242a5749845dc8dd0dc8cde2979dd9",
|
||||
"reference": "dbc5fb421f242a5749845dc8dd0dc8cde2979dd9",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5dfac003e3be0ca24000cee2a2e19ba2f21aa8f8",
|
||||
"reference": "5dfac003e3be0ca24000cee2a2e19ba2f21aa8f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4168,7 +4157,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:47:47+00:00"
|
||||
"time": "2021-03-10T06:28:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/complexity",
|
||||
@@ -4233,12 +4222,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||
"reference": "93e6aa13f3dc5f8327e7fb9756e9655fc4c23e90"
|
||||
"reference": "08ab1620f0f35c41e50d847433193da76d33151e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/93e6aa13f3dc5f8327e7fb9756e9655fc4c23e90",
|
||||
"reference": "93e6aa13f3dc5f8327e7fb9756e9655fc4c23e90",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/08ab1620f0f35c41e50d847433193da76d33151e",
|
||||
"reference": "08ab1620f0f35c41e50d847433193da76d33151e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4292,7 +4281,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:47:55+00:00"
|
||||
"time": "2021-03-10T06:28:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/environment",
|
||||
@@ -4300,12 +4289,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/environment.git",
|
||||
"reference": "6e1743b808be9cfd33a716583ccb94b7d4d32e94"
|
||||
"reference": "e34aa76b02666b7f12417f2000b6d4fbb9c2016c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e1743b808be9cfd33a716583ccb94b7d4d32e94",
|
||||
"reference": "6e1743b808be9cfd33a716583ccb94b7d4d32e94",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/e34aa76b02666b7f12417f2000b6d4fbb9c2016c",
|
||||
"reference": "e34aa76b02666b7f12417f2000b6d4fbb9c2016c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4356,7 +4345,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:03+00:00"
|
||||
"time": "2021-03-10T06:28:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
@@ -4364,12 +4353,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "eca7281ab29075df68b113a37a83be616b629b12"
|
||||
"reference": "889b30136f9f8a6c0c4d71954b772ac8b8d7feab"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/eca7281ab29075df68b113a37a83be616b629b12",
|
||||
"reference": "eca7281ab29075df68b113a37a83be616b629b12",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/889b30136f9f8a6c0c4d71954b772ac8b8d7feab",
|
||||
"reference": "889b30136f9f8a6c0c4d71954b772ac8b8d7feab",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4434,7 +4423,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:12+00:00"
|
||||
"time": "2021-03-10T06:28:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/global-state",
|
||||
@@ -4442,12 +4431,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/global-state.git",
|
||||
"reference": "0ac702e6d13725242edb9b294c5d20b92fcfb8b4"
|
||||
"reference": "8a1428d5351ea5dae3aa386d3b321499ac23adea"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ac702e6d13725242edb9b294c5d20b92fcfb8b4",
|
||||
"reference": "0ac702e6d13725242edb9b294c5d20b92fcfb8b4",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/8a1428d5351ea5dae3aa386d3b321499ac23adea",
|
||||
"reference": "8a1428d5351ea5dae3aa386d3b321499ac23adea",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4499,7 +4488,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:19+00:00"
|
||||
"time": "2021-03-10T06:28:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/lines-of-code",
|
||||
@@ -4564,12 +4553,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
|
||||
"reference": "8cc80b4bda00a4c5997c3fc597a34872f3a1007d"
|
||||
"reference": "b218fb1d63287edb7613b61122890f39e82ae8c2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/8cc80b4bda00a4c5997c3fc597a34872f3a1007d",
|
||||
"reference": "8cc80b4bda00a4c5997c3fc597a34872f3a1007d",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/b218fb1d63287edb7613b61122890f39e82ae8c2",
|
||||
"reference": "b218fb1d63287edb7613b61122890f39e82ae8c2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4614,7 +4603,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:28+00:00"
|
||||
"time": "2021-03-10T06:28:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/object-reflector",
|
||||
@@ -4622,12 +4611,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/object-reflector.git",
|
||||
"reference": "1d33587c2c3e636936f895e103a9e82dd8102a8e"
|
||||
"reference": "cbf30bc9ed44451f5301480f668cd4fcf6bb225a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d33587c2c3e636936f895e103a9e82dd8102a8e",
|
||||
"reference": "1d33587c2c3e636936f895e103a9e82dd8102a8e",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/cbf30bc9ed44451f5301480f668cd4fcf6bb225a",
|
||||
"reference": "cbf30bc9ed44451f5301480f668cd4fcf6bb225a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4670,7 +4659,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:48:35+00:00"
|
||||
"time": "2021-03-10T06:29:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/recursion-context",
|
||||
@@ -4678,12 +4667,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
||||
"reference": "43f58a51e8f853aadb228ba818d2be388af7237b"
|
||||
"reference": "c3333538e25ec932d0cbdce77b6ac846757b809d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/43f58a51e8f853aadb228ba818d2be388af7237b",
|
||||
"reference": "43f58a51e8f853aadb228ba818d2be388af7237b",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/c3333538e25ec932d0cbdce77b6ac846757b809d",
|
||||
"reference": "c3333538e25ec932d0cbdce77b6ac846757b809d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4734,7 +4723,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:49:08+00:00"
|
||||
"time": "2021-03-10T06:29:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/resource-operations",
|
||||
@@ -4798,12 +4787,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/type.git",
|
||||
"reference": "557863473c1de00e165a288d5b547f1f83652e7e"
|
||||
"reference": "1bba184dccb563769fab9bd69c623c1a353dec98"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/557863473c1de00e165a288d5b547f1f83652e7e",
|
||||
"reference": "557863473c1de00e165a288d5b547f1f83652e7e",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/1bba184dccb563769fab9bd69c623c1a353dec98",
|
||||
"reference": "1bba184dccb563769fab9bd69c623c1a353dec98",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4847,7 +4836,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T15:49:16+00:00"
|
||||
"time": "2021-03-10T06:29:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/version",
|
||||
@@ -4946,12 +4935,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "c08d7d0d458eceb62996d81d3be8d9fbf5564ec4"
|
||||
"reference": "4e102e4de39852a1dcd3b2169d263b88afee7fff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/c08d7d0d458eceb62996d81d3be8d9fbf5564ec4",
|
||||
"reference": "c08d7d0d458eceb62996d81d3be8d9fbf5564ec4",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/4e102e4de39852a1dcd3b2169d263b88afee7fff",
|
||||
"reference": "4e102e4de39852a1dcd3b2169d263b88afee7fff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5036,7 +5025,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-23T10:10:15+00:00"
|
||||
"time": "2021-03-08T21:52:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -5536,17 +5525,17 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "e830e6ceebd6377b019e4c9a523d6f2c27007e4a"
|
||||
"reference": "96cd360b9f03a22a30cf5354e630c557bd3aac33"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/e830e6ceebd6377b019e4c9a523d6f2c27007e4a",
|
||||
"reference": "e830e6ceebd6377b019e4c9a523d6f2c27007e4a",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/96cd360b9f03a22a30cf5354e630c557bd3aac33",
|
||||
"reference": "96cd360b9f03a22a30cf5354e630c557bd3aac33",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"psr/container": "^1.0"
|
||||
"psr/container": "^1.1"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/service-implementation": ""
|
||||
@@ -5608,7 +5597,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-25T16:38:04+00:00"
|
||||
"time": "2021-03-05T22:51:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
@@ -5799,12 +5788,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "728c611e8643a5dd44839ffa791e21763b04a694"
|
||||
"reference": "37e48403c21e06f63bc27d7ccd997fbb72b0ae2a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/728c611e8643a5dd44839ffa791e21763b04a694",
|
||||
"reference": "728c611e8643a5dd44839ffa791e21763b04a694",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/37e48403c21e06f63bc27d7ccd997fbb72b0ae2a",
|
||||
"reference": "37e48403c21e06f63bc27d7ccd997fbb72b0ae2a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5870,7 +5859,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-22T11:56:05+00:00"
|
||||
"time": "2021-03-10T10:07:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?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
|
||||
{
|
||||
$this->init();
|
||||
}
|
||||
|
||||
public function perform()
|
||||
{
|
||||
$this->execute();
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
{
|
||||
$this->shutdown();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import http from 'k6/http';
|
||||
import { sleep, check } from 'k6';
|
||||
import { Counter } from 'k6/metrics';
|
||||
|
||||
// A simple counter for http requests
|
||||
export const requests = new Counter('http_reqs');
|
||||
|
||||
// you can specify stages of your test (ramp up/down patterns) through the options object
|
||||
// target is the number of VUs you are aiming for
|
||||
|
||||
export const options = {
|
||||
stages: [
|
||||
{ target: 50, duration: '1m' },
|
||||
// { target: 15, duration: '1m' },
|
||||
// { target: 0, duration: '1m' },
|
||||
],
|
||||
thresholds: {
|
||||
requests: ['count < 100'],
|
||||
},
|
||||
};
|
||||
|
||||
export default function () {
|
||||
const res = http.get('http://localhost:9501/v1/health/version?project=console');
|
||||
|
||||
const checkRes = check(res, {
|
||||
'status is 200': (r) => r.status === 200,
|
||||
'response body': (r) => r.body.indexOf('0.7.0') !== -1,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// k6 run tests/benchmarks/ws.js
|
||||
|
||||
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js';
|
||||
import ws from 'k6/ws';
|
||||
import { check } from 'k6';
|
||||
|
||||
export let options = {
|
||||
stages: [
|
||||
{ duration: '20s', target: 10 },
|
||||
{ duration: '20s', target: 100 },
|
||||
{ duration: '20s', target: 0 },
|
||||
],
|
||||
}
|
||||
|
||||
export default function () {
|
||||
const url = new URL('ws://localhost/v1/realtime');
|
||||
url.searchParams.append('project', '60479391b1c3f');
|
||||
url.searchParams.append('channels[]', 'files');
|
||||
|
||||
const res = ws.connect(url.toString(), function (socket) {
|
||||
socket.on('open', () => {
|
||||
console.log('connected')
|
||||
});
|
||||
|
||||
socket.on('message', (data) => {
|
||||
console.log('Message received: ', data)
|
||||
});
|
||||
|
||||
socket.on('close', () => console.log('disconnected'));
|
||||
|
||||
socket.setTimeout(function () {
|
||||
console.log('2 seconds passed, closing the socket');
|
||||
socket.close();
|
||||
}, 2000);
|
||||
});
|
||||
|
||||
check(res, { 'status is 101': (r) => r && r.status === 101 });
|
||||
}
|
||||
Reference in New Issue
Block a user