mirror of
https://github.com/archtechx/jobpipeline.git
synced 2025-12-12 06:44:03 +00:00
Possibility to change the default configurations for the queue jobs. (#13)
* Add $queue attribute
This code enables me to change the queue name that the JobPipeline will be pushed to.
Now I can do something like this:
```php
JobPipeline::make([
Jobs\CreateDatabase::class,
Jobs\MigrateDatabase::class,
// Jobs\SeedDatabase::class,
// Your own jobs to prepare the tenant.
// Provision API keys, create S3 buckets, anything you want!
])->send(function (Events\TenantCreated $event)
{
return $event->tenant;
})->onQueue('another-queue')
->shouldBeQueued()
```
* Add .idea directory to gitignore
* The following methods where added: onConnection, onQueue, delay, tries, shouldBeQueuedOn. The signature of shouldBeQueued was changed too.
* reuse shouldBeQueuedOn
* updating docs
* added timeout
* docs updated
* .phpunit.cache/ added to gitignore
* tests for shouldQueueOn method
* leave only shouldBeQueued method
* update README
* remove unnecessary property declarations
* Delete jobpipelinetest.json
* add jobpipelinetest.json as a empty file
* update readme
* simplify tests
* improve code
* improve readme
---------
Co-authored-by: Samuel Štancl <samuel@archte.ch>
This commit is contained in:
parent
bfc53f6dd6
commit
d7a9e6796e
4 changed files with 58 additions and 3 deletions
|
|
@ -80,6 +80,32 @@ class JobPipelineTest extends TestCase
|
|||
$this->assertSame('bar', $this->valuestore->get('foo'));
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function job_pipelines_can_use_a_specific_queue()
|
||||
{
|
||||
Event::listen(TestEvent::class, JobPipeline::make([
|
||||
FooJob::class,
|
||||
])->send(function () {
|
||||
return $this->valuestore;
|
||||
})->shouldBeQueued(queue: 'another')->toListener());
|
||||
|
||||
$this->assertFalse($this->valuestore->has('foo'));
|
||||
event(new TestEvent(new TestModel()));
|
||||
|
||||
$this->artisan('queue:work --once --queue=default');
|
||||
|
||||
sleep(1);
|
||||
|
||||
// Job hasn't run since it was pushed to the 'another' queue
|
||||
$this->assertNull($this->valuestore->get('foo'));
|
||||
|
||||
$this->artisan('queue:work --once --queue=another');
|
||||
|
||||
sleep(1);
|
||||
|
||||
$this->assertSame('bar', $this->valuestore->get('foo'));
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function job_pipeline_executes_jobs_and_passes_the_object_sequentially()
|
||||
{
|
||||
|
|
@ -133,7 +159,7 @@ class JobPipelineTest extends TestCase
|
|||
// Foo job is not excuted
|
||||
$this->assertFalse($this->valuestore->has('foo'));
|
||||
}
|
||||
|
||||
|
||||
/** @test */
|
||||
public function the_pipeline_can_execute_failed_method_on_job()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue