fivesqrd/central
Composer 安装命令:
composer require fivesqrd/central
包简介
Central job logging library for multi server implementations
README 文档
README
Central log for console scripts
composer require fivesqrd/central:1.2.*
Setup
Using AWS SDK
$config = [
'namespace' => 'My-App-Name',
'adapter' => 'Aws',
'options' => [ // Adapter specific options
'table' => null,
'client' => new Aws\DynamoDb\DynamoDbClient($aws),
'marshaler' => new Aws\DynamoDb\Marshaler()
],
];
Using the Bego library
$db = new Bego\Database(
new Aws\DynamoDb\DynamoDbClient($config), new Aws\DynamoDb\Marshaler()
);
$config = [
'namespace' => 'My-App-Name',
'adapter' => 'Bego',
'options' => [ // Adapter specific options
'client' => $db->table(new App\MyTables\Logs()),
],
];
With Laravel 5 Setup is automatically done in Laravel
Basic Example
use Fivesqrd\Central;
$job = Central\Factory::job($config);
$job->instance('MyScriptName')->start(function($log) {
//do something here
$log->debug('Something was done');
return 'Everything was done ok';
});
/* Store log for 30 days */
$job->save(strtotime('+ 30 days'));
/* Get the job status */
echo $job->status();
Executing inside a class
use Fivesqrd\Central;
$job = Central\Factory::job($config)
->instance(self::class)
->start(array($this, '_execute'))
->save(strtotime('+ 30 days'));
Realtime debug output
/* Output debug info to stdout as well */
print_r($job->log()->toArray());
/* Output the same log entry saved to storage */
print_r($job->record());
Atomic locking
use Fivesqrd\Central;
$job = Central\Factory::job($config)
->instance(self::class)
->lock()
->start(self::class, array($this, '_execute'))
->save(strtotime('+ 30 days'));
Laravel 5
.env requirements
CENTRAL_TABLE="My-Table"
CENTRAL_ADAPTER="Aws"
CENTRAL_NAMESPACE="My-App"
AWS_KEY="my-key"
AWS_SECRET="my-secret"
AWS_REGION="eu-west-1"
AWS_ENDPOINT=
Using it in a command class:
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$job = resolve('central')
->instance(self::class)
->start(array($this, '_execute'))
->save(strtotime('+ 30 days'));
/* logic here */
$this->info("Command completed with: {$job->status()}");;
}
protected function _execute($log)
{
$log->debug('Job started at ' . date('Y-m-d H:i:s'));
return 'It worked';
}
fivesqrd/central 适用场景与选型建议
fivesqrd/central 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 388 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 06 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 fivesqrd/central 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fivesqrd/central 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 388
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2017-06-17