renoki-co / laravel-chained-jobs-shared-data
该包已被废弃且不再维护。未建议替代包。
在 Laravel 中在链式作业之间共享数据。
1.1.0
2020-09-06 18:50 UTC
Requires
- laravel/framework: ^6.18.28|^7.22.1|^8.0
Requires (Dev)
- laravel/legacy-factories: ^1.0
- orchestra/database: ^6.0
- orchestra/testbench: ^6.0
This package is auto-updated.
Last update: 2020-12-05 13:44:46 UTC
README
链式作业共享数据是一个帮助您在链式作业之间共享一些数据(通常是数组)的包。
🤝 支持
Renoki Co. 在 GitHub 上的目标是向世界带来许多开源项目和有用的项目。每天开发和维护项目是一项艰苦的工作,尽管如此,我们仍然热爱它。
如果您在日常工作中使用您的应用程序,在演示中,爱好项目或甚至学校项目中,请分享一些关于我们工作的好评或赞助我们的工作。好评会触动我们的脉轮和氛围,而赞助将使开源项目保持活力。
🚀 安装
您可以通过 composer 安装此包
composer require renoki-co/laravel-chained-jobs-shared-data
🙌 使用
您只需用此包提供的 traits 替换默认作业的 Dispatchable
和 Queueable
traits。
// use Illuminate\Bus\Queueable; // use Illuminate\Foundation\Bus\Dispatchable; use RenokiCo\ChainedJobsSharedData\Traits\Dispatchable; use RenokiCo\ChainedJobsSharedData\Traits\Queueable; class MyJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; // the rest of job here }
用例
主要用例是在链式作业之间共享一些数据,同时能够修改它并在后续作业中检索之前的修改。
CreateUser::withChain([ new CreateApiKey, new MakeTestApiCall, ])->dispatch();
从表面上看,CreateApiKey
和 MakeTestApiCall
是依赖于 CreateUser
的作业。
如果不使用此包的 traits,唯一的解决方案就是在 CreateUser
作业中触发 CreateApiKey
,然后触发下一个,再触发下一个,等等,最终你会得到难以管理和调试的糟糕代码。
如果所有作业类都使用之前提到的 traits,那么拥有一些共享数据将简化作业
// CreateUser.php public function handle() { $user = $this->createUser(); $this->sharedData['user'] = $user; }
// CreateApiKey.php public function handle() { $apiKey = $this->createApiKeyForUser($this->sharedData['user']); $this->sharedData['api_key'] = $apiKey; }
// MakeTestApiCall.php public function handle() { $this->makeApiCall( $this->sharedData['user'], $this->sharedData['api_key'], ); }
🐛 测试
vendor/bin/phpunit
🤝 贡献
请参阅 CONTRIBUTING 以获取详细信息。
🔒 安全性
如果您发现任何与安全性相关的问题,请通过电子邮件 alex@renoki.org 而不是使用问题跟踪器。