mirror of
https://github.com/coollabsio/coolify.git
synced 2026-11-14 08:42:38 -04:00
On cloud, StartService and DeployServiceApplication dispatched their CoolifyTask on the high queue, so service starts competed with all other high jobs. remote_process() and CoolifyTask now accept a queue (default high); start paths pass deployment_queue(). The queued RestartDatabase action also runs on deployment_queue() instead of the default queue.
78 lines
2.5 KiB
PHP
78 lines
2.5 KiB
PHP
<?php
|
|
|
|
use App\Actions\Database\RestartDatabase;
|
|
use App\Actions\Database\StartDatabase;
|
|
use App\Actions\Database\StartDatabaseProxy;
|
|
use App\Actions\Service\StartService;
|
|
use App\Jobs\DatabaseBackupJob;
|
|
use App\Jobs\ScheduledJobManager;
|
|
use App\Models\ScheduledDatabaseBackup;
|
|
|
|
describe('deployment_queue helper', function () {
|
|
test('uses the high queue on self-hosted', function () {
|
|
config(['constants.coolify.self_hosted' => true]);
|
|
|
|
expect(deployment_queue())->toBe('high');
|
|
});
|
|
|
|
test('uses the deployments queue on cloud', function () {
|
|
config(['constants.coolify.self_hosted' => false]);
|
|
|
|
expect(deployment_queue())->toBe('deployments');
|
|
});
|
|
});
|
|
|
|
describe('crons_queue helper', function () {
|
|
test('uses the high queue on self-hosted', function () {
|
|
config(['constants.coolify.self_hosted' => true]);
|
|
|
|
expect(crons_queue())->toBe('high');
|
|
});
|
|
|
|
test('uses the crons queue on cloud', function () {
|
|
config(['constants.coolify.self_hosted' => false]);
|
|
|
|
expect(crons_queue())->toBe('crons');
|
|
});
|
|
});
|
|
|
|
describe('start action job routing', function () {
|
|
test('routes to the deployments queue on cloud', function (string $actionClass) {
|
|
config(['constants.coolify.self_hosted' => false]);
|
|
|
|
expect($actionClass::makeJob()->queue)->toBe('deployments');
|
|
})->with([
|
|
StartDatabase::class,
|
|
RestartDatabase::class,
|
|
StartDatabaseProxy::class,
|
|
StartService::class,
|
|
]);
|
|
|
|
test('routes to the high queue on self-hosted', function (string $actionClass) {
|
|
config(['constants.coolify.self_hosted' => true]);
|
|
|
|
expect($actionClass::makeJob()->queue)->toBe('high');
|
|
})->with([
|
|
StartDatabase::class,
|
|
RestartDatabase::class,
|
|
StartDatabaseProxy::class,
|
|
StartService::class,
|
|
]);
|
|
});
|
|
|
|
describe('scheduled job routing', function () {
|
|
test('scheduled jobs use the crons queue on cloud', function () {
|
|
config(['constants.coolify.self_hosted' => false]);
|
|
|
|
expect((new ScheduledJobManager)->queue)->toBe('crons');
|
|
expect((new DatabaseBackupJob(new ScheduledDatabaseBackup))->queue)->toBe('crons');
|
|
});
|
|
|
|
test('scheduled jobs use the high queue on self-hosted', function () {
|
|
config(['constants.coolify.self_hosted' => true]);
|
|
|
|
expect((new ScheduledJobManager)->queue)->toBe('high');
|
|
expect((new DatabaseBackupJob(new ScheduledDatabaseBackup))->queue)->toBe('high');
|
|
});
|
|
});
|