Skip to content

Commit 4949949

Browse files
gitHomesPhpEvgen
andauthored
Add manage job's queue (#7)
* add ability set queue for job not only default * change ecs config * fix linter requirements Co-authored-by: Evgen <[email protected]>
1 parent 1ce7edf commit 4949949

File tree

8 files changed

+48
-4
lines changed

8 files changed

+48
-4
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
run: composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader
6464
working-directory: './'
6565
- name: 'Linting PHP source files'
66-
run: 'vendor/bin/ecs check --config=ecs.yml .'
66+
run: 'vendor/bin/ecs check --config=ecs.php .'
6767
test:
6868
strategy:
6969
fail-fast: false

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
},
6161
"scripts": {
6262
"lint-fix":[
63-
"vendor/bin/ecs check src tests -c ecs.yml --fix"
63+
"vendor/bin/ecs check src tests -c ecs.php --fix"
6464
]
6565
},
6666
"extra": {

database/Laravel/migrations/0000_00_00_000001_create_test_model_table.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public function up()
1717

1818
$table->string('name');
1919
$table->string('some_field');
20-
$table->float('version')->default(0.0);
20+
$table->float('version')
21+
->default(0.0);
2122
});
2223

2324
Schema::create('soft_test_models', function (Blueprint $table) {

ecs.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer;
6+
use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestAnnotationFixer;
7+
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
8+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
9+
10+
return static function (ContainerConfigurator $containerConfigurator): void {
11+
$containerConfigurator->import(__DIR__ . '/vendor/umbrellio/code-style-php/umbrellio-cs.php');
12+
13+
$services = $containerConfigurator->services();
14+
15+
$services->set(PhpUnitTestAnnotationFixer::class)
16+
->call('configure', [[
17+
'style' => 'annotation',
18+
]]);
19+
20+
$services->set(DeclareStrictTypesFixer::class);
21+
22+
$services->set(BinaryOperatorSpacesFixer::class)
23+
->call('configure', [[
24+
'default' => 'single_space',
25+
]]);
26+
27+
$parameters = $containerConfigurator->parameters();
28+
29+
$parameters->set('cache_directory', '.ecs_cache');
30+
31+
$parameters->set('exclude_files', ['vendor/*', 'database/*']);
32+
};

src/Integration/Laravel/Jobs/PublishJob.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,24 @@
44

55
namespace Umbrellio\TableSync\Integration\Laravel\Jobs;
66

7+
use Illuminate\Bus\Queueable;
78
use Illuminate\Contracts\Queue\ShouldQueue;
89
use Illuminate\Support\Facades\App;
10+
use Illuminate\Support\Facades\Config;
911
use Umbrellio\LaravelHeavyJobs\Jobs\ShouldStorePayload;
1012
use Umbrellio\TableSync\Messages\PublishMessage;
1113

1214
final class PublishJob implements ShouldQueue, ShouldStorePayload
1315
{
1416
use HeavyJobsEnabledTrait;
17+
use Queueable;
1518

1619
private $publisherClass;
1720
private $message;
1821

1922
public function __construct(string $publisherClass, PublishMessage $message)
2023
{
24+
$this->queue = Config::get('table_sync.publish_job_queue', '');
2125
$this->publisherClass = $publisherClass;
2226
$this->message = $message;
2327
}

src/Integration/Laravel/Jobs/ReceiveMessage.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44

55
namespace Umbrellio\TableSync\Integration\Laravel\Jobs;
66

7+
use Illuminate\Bus\Queueable;
78
use Illuminate\Contracts\Queue\ShouldQueue;
9+
use Illuminate\Support\Facades\Config;
810
use Umbrellio\LaravelHeavyJobs\Jobs\ShouldStorePayload;
911
use Umbrellio\TableSync\Integration\Laravel\Receive\Receiver;
1012
use Umbrellio\TableSync\Messages\ReceivedMessage;
1113

1214
final class ReceiveMessage implements ShouldQueue, ShouldStorePayload
1315
{
1416
use HeavyJobsEnabledTrait;
17+
use Queueable;
1518

1619
private $message;
1720

1821
public function __construct(ReceivedMessage $message)
1922
{
23+
$this->queue = Config::get('table_sync.receive_job_queue', '');
2024
$this->message = $message;
2125
}
2226

src/Integration/Laravel/config/table_sync.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,6 @@
5252
'log' => [
5353
'channel' => 'table_sync',
5454
],
55+
'publish_job_queue' => '',
56+
'receive_job_queue' => '',
5557
];

tests/functional/Laravel/Models/SoftTestModel.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
*/
1818
final class SoftTestModel extends Model implements SyncableModel
1919
{
20-
use TableSyncable, SoftDeletes;
20+
use TableSyncable;
21+
use SoftDeletes;
2122

2223
public $timestamps = false;
2324

0 commit comments

Comments
 (0)