datashaman/job-chain
Composer 安装命令:
composer require datashaman/job-chain
包简介
Chain jobs together with cache.
README 文档
README
Job chains powered by cache for Laravel.
installation
composer require datashaman/job-chain
instrumentation
use Datashaman\JobChain\HasJobChain;
class MyJob
{
use HasJobChain;
public handle()
{
// do things
$value = 'my job has run';
$this->done($value);
}
}
configuration
return [
/**
* Job chain loader will search through these paths for chain files.
*/
'paths' => [
base_path('chains'),
],
/**
* Cache store use for holding chain state.
*/
'cache' => env('JOB_CHAIN_CACHE', env('CACHE_DRIVER', 'file')),
/**
* Cache item lifetime. This must be longer than the total expected
* run time for any chain.
*
* This can overridden per chain.
*/
'lifetime' = env('JOB_CHAIN_LIFETIME', 60 * 60 * 24),
];
usage
Given this file chains/chain1.yml:
done: jobThree
lifetime: 86400
jobs:
jobOne:
type: JobOne
jobTwo:
type: JobTwo
params:
documents: !job jobOne
jobThree:
type: JobThree
params:
documents: !job jobTwo
And these three test job class:
use Datashaman\JobChain\HasJobChain;
class JobOne
{
use HasJobChain;
public function handle()
{
$this->done('JobOne has run');
}
}
class JobTwo
{
use HasJobChain;
public function handle()
{
$this->done('JobTwo has run');
}
}
class JobThree
{
use HasJobChain;
public function handle()
{
$this->done('JobThree has run');
}
}
When you run this code:
use JobChain;
Event::listen(function (JobChainDone $event) {
logger()->info('Job chain done', [
'jobChain' => $event->jobChain,
'value' => $event->value,
]);
});
JobChain::run('chain1');
Execution will flow sequentially through JobOne, JobTwo and JobThree because of the dependency graph denoted by using a custom type of !job in the YAML definition.
The event listener should receive a value of JobThree has run which is the value the done job has submitted.
If the chain does not define a done job, it is assumed to be the last job in the definition.
Test build.
datashaman/job-chain 适用场景与选型建议
datashaman/job-chain 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 42 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 06 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 datashaman/job-chain 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 datashaman/job-chain 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 42
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-06-29