fixed
This commit is contained in:
109
front/public/__drugsImagesMedicalTaskConsumer.php
Normal file
109
front/public/__drugsImagesMedicalTaskConsumer.php
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
/*
|
||||
* description:
|
||||
* author:wh
|
||||
* email:
|
||||
* createTime:{2024/11/26} {15:41}
|
||||
*/
|
||||
|
||||
set_time_limit(0);
|
||||
//var_dump(111);die;
|
||||
//创建一个循环,每隔三秒钟执行一次,调用接口
|
||||
|
||||
try {
|
||||
while (true) {
|
||||
//调用接口
|
||||
$url = "https://ybx_prediagnosis.excn.top/api/Drugsimagesmedicalupload/queryDrugsImagesMedicalTask";
|
||||
$res = curl_get($url);
|
||||
//var_dump($res);
|
||||
if($res['code'] == 200){
|
||||
$arr_res = json_decode($res['data'],true);
|
||||
//var_dump($arr_res);die;
|
||||
//yes终止,no不终止
|
||||
if($arr_res['data'] == 'yes'){
|
||||
echo "队列消费已终止";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
sleep(3);
|
||||
}else{
|
||||
echo "队列消费失败,已终止";
|
||||
log_to_write_txt($res);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}catch (\Exception $e){
|
||||
log_to_write_txt(['error'=>'队列消费异常',$e->getMessage(),$e->getTraceAsString()]);
|
||||
}
|
||||
|
||||
function curl_get(string $url, int $timeout = 10, $header=[])
|
||||
{
|
||||
|
||||
$header = $header?:array(
|
||||
'Accept: application/json',
|
||||
);
|
||||
$curl = curl_init();
|
||||
//curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||
//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||
//curl_setopt($curl, CURLOPT_SSLVERSION, 3);
|
||||
//设置抓取的url
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
//设置头文件的信息作为数据流输出
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0);
|
||||
// 超时设置,以秒为单位
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
|
||||
|
||||
// 超时设置,以毫秒为单位
|
||||
// curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
|
||||
|
||||
// 设置请求头
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
|
||||
//设置获取的信息以文件流的形式返回,而不是直接输出。
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
//执行命令
|
||||
$data = curl_exec($curl);
|
||||
|
||||
// 显示错误信息
|
||||
if (curl_error($curl)) {
|
||||
//print "Error: ".curl_errno($curl).'-' . curl_error($curl);
|
||||
//返回错误码
|
||||
return ['code' => curl_errno($curl), 'msg' => curl_error($curl)];
|
||||
} else {
|
||||
//关闭句柄
|
||||
curl_close($curl);
|
||||
// 返回的内容
|
||||
return ['code' => 200, 'msg' => 'cURL ok', 'data' => $data];
|
||||
}
|
||||
}
|
||||
|
||||
function log_to_write_txt($data = 'test', $dirname = '')
|
||||
{
|
||||
$root_path = explode('vendor',__DIR__)[0];
|
||||
$runtime_path = $root_path.'runtime/';
|
||||
if ($dirname) {
|
||||
$filepath = $runtime_path . 'log/' . ($dirname).'/'.date('Ymd');//运行时日志
|
||||
}else{
|
||||
$filepath = $runtime_path . 'log/'.date('Ym');//运行时日志
|
||||
}
|
||||
|
||||
if (!file_exists($filepath)) {
|
||||
mkdir($filepath, 0777, true);
|
||||
}
|
||||
if($dirname){
|
||||
$filepath .= '/log' . date('YmdH') . '.txt';
|
||||
}else{
|
||||
$filepath .= '/' . date('d') . '_error.log';
|
||||
}
|
||||
$ip = request()->ip();
|
||||
list($t1, $t2) = explode(' ', microtime());
|
||||
$write_time = date('Y-m-d H:i:s',$t2).' '.sprintf('%.0f',$t1*1000);
|
||||
|
||||
$str = "\n" . $write_time . ' | '. $ip.' | ' . request()->baseUrl() . "\n";
|
||||
|
||||
$data = is_object($data) || is_array($data) ? $str . json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : $str . $data;
|
||||
|
||||
file_put_contents($filepath, $data, FILE_APPEND);
|
||||
}
|
||||
Reference in New Issue
Block a user