|
...
|
...
|
@@ -7,7 +7,9 @@ use App\Exceptions\InquiryFilterException; |
|
|
|
use App\Services\SyncSubmitTaskService;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use App\Models\SyncSubmitTask\SyncSubmitTask as SyncSubmitTaskModel;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -25,9 +27,17 @@ class SyncSubmitTask extends Command |
|
|
|
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
$backup = false;
|
|
|
|
while (true) {
|
|
|
|
$task_id = $this->getTaskId();
|
|
|
|
if ($task_id > 2000000) {
|
|
|
|
$backup = true;
|
|
|
|
}
|
|
|
|
if (empty($task_id)) {
|
|
|
|
if ($backup) {
|
|
|
|
$this->backup();
|
|
|
|
$backup = false;
|
|
|
|
}
|
|
|
|
sleep(5);
|
|
|
|
continue;
|
|
|
|
}
|
|
...
|
...
|
@@ -43,7 +53,7 @@ class SyncSubmitTask extends Command |
|
|
|
$task_info->save();
|
|
|
|
|
|
|
|
$this->output('任务完成');
|
|
|
|
} catch (InquiryFilterException $e){
|
|
|
|
} catch (InquiryFilterException $e) {
|
|
|
|
$task_info->status = 1;
|
|
|
|
$task_info->is_filtered = 1;
|
|
|
|
$task_info->remark = $e->getMessage();
|
|
...
|
...
|
@@ -65,11 +75,12 @@ class SyncSubmitTask extends Command |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getTaskId(){
|
|
|
|
public function getTaskId()
|
|
|
|
{
|
|
|
|
$task_id = Redis::rpop('sync_submit_task');
|
|
|
|
if (empty($task_id)) {
|
|
|
|
$ids = SyncSubmitTaskModel::where('status', 0)->pluck('id');
|
|
|
|
foreach($ids as $id){
|
|
|
|
$ids = SyncSubmitTaskModel::where('status', 0)->limit(100)->pluck('id');
|
|
|
|
foreach ($ids as $id) {
|
|
|
|
Redis::lpush('sync_submit_task', $id);
|
|
|
|
}
|
|
|
|
$task_id = Redis::rpop('sync_submit_task');
|
|
...
|
...
|
@@ -86,4 +97,30 @@ class SyncSubmitTask extends Command |
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 备份数据
|
|
|
|
* @author zbj
|
|
|
|
* @date 2024/1/23
|
|
|
|
*/
|
|
|
|
public function backup()
|
|
|
|
{
|
|
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
|
|
$table = (new SyncSubmitTaskModel())->getTable();
|
|
|
|
$new_table = $table . '_backup_' . date('Ymd');
|
|
|
|
|
|
|
|
//重命名当前表
|
|
|
|
Schema::rename($table, $new_table);
|
|
|
|
//克隆表数据
|
|
|
|
DB::statement('CREATE TABLE ' . $table . ' LIKE ' . $new_table);
|
|
|
|
|
|
|
|
DB::commit();
|
|
|
|
|
|
|
|
$this->output('数据备份成功');
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
$this->output('数据备份失败' . $e->getMessage());
|
|
|
|
DB::rollBack();
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|