Commit ebbe4438 ebbe4438e58457ca7cbc0bb6e3af45e346427ea0 by lemon

*

1 parent f925b825
<?php
namespace App\Console\Commands;
use App\Helper\RedisClient;
use App\Models\Legal\Company;
use App\Models\Legal\SongsIp;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
class DealSongIp extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$redis = RedisClient::instance('songip');
$company_ids = Company::query()->pluck('company_id')->toArray();
foreach ($company_ids as $company_id) {
$key1 = "company:#company_id#:channel:#channel#:month:#month#:songip";
$key2 = "company:#company_id#:channel:#channel#:songip";
$key1 = str_replace(['#company_id#', '#channel#'], [$company_id, 1], $key1);
$key2 = str_replace(['#company_id#', '#channel#'], [$company_id, 1], $key2);
$redis->del($key1);
$redis->del($key2);
}
SongsIp::query()->chunk(5000, function ($res) use ($redis) {
foreach ($res as $item) {
$key = "company:#company_id#:channel:#channel#:month:#month#:songip";
$key = str_replace(['#company_id#', '#channel#'], [$item->company_id, 1], $key);
$redis->sadd($key, $item->custom_id);
}
});
}
}
......@@ -2,6 +2,7 @@
namespace App\Console;
use App\Console\Commands\DealSongIp;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
......@@ -13,7 +14,7 @@ class Kernel extends ConsoleKernel
* @var array
*/
protected $commands = [
//
DealSongIp::class,
];
/**
......
<?php
namespace App\Models\Legal;
use App\Models\BaseModel;
use Illuminate\Database\Eloquent\SoftDeletes;
class Company extends BaseModel
{
use SoftDeletes;
protected $table = 'company';
protected $primaryKey = 'company_id';
protected $guarded = [];
}
......@@ -161,6 +161,14 @@ return [
'database' => env('REDIS_CACHE_DB', '1'),
],
'songip' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => 0,
]
],
];
......