WebsiteData.php
1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
namespace App\Console\Commands;
use App\Models\File\DataFile;
use Illuminate\Console\Command;
class WebsiteData extends Command
{
use CmdSignal;
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'website_data';
/**
* The console command description.
*
* @var string
*/
protected $description = '向AICC推送数据';
// 最大支持5个进程
public int $maxRunNumber = 50;
protected $time;
protected $url;
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
$this->time = date('Y-m');
$this->url = env('AICC_URL');
parent::__construct();
}
public function start(): int
{
# 0 - 未推送
# 1 - 已推送
# 2 - 其他问题
$status = 0;
$lists = DataFile::query()->where('status', $status)
->where('created_at', 'like', $this->time . '%')->first();
if (is_null($lists)) {
$this->debug_echo('没有任务,等待中');
sleep(60);
return 0;
}
$key = $this->signature . '-' . $lists->id;
$count = redis_get($key);
$isRes = http_post($this->url, json_encode(['data' => $lists->getOriginal()]));
if (!$isRes) {
if ($count == 2) {
$lists->is_pdf = 2;
$lists->save();
$this->debug_echo('项目文件数据推送失败! - 其他原因 - ' . $key);
} else {
redis_add($key, $count + 1);
$this->debug_echo('项目文件数据推送失败! - ' . $key);
}
}
$lists->status = 1;
$lists->save();
$this->debug_echo('项目文件数据保存成功!');
return 0;
}
}