新增分配医生延迟队列
This commit is contained in:
parent
daf2981c3f
commit
d746a7ae8a
@ -211,7 +211,7 @@ class AssignDoctorConsumer extends ConsumerMessage
|
||||
$imService = new ImService();
|
||||
$imService->waitDoctorInquiry($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']);
|
||||
|
||||
// 发送站内、订阅失败发送短信消息-问诊结束
|
||||
// 医生-医生有新问诊 站内、订阅失败发送短信
|
||||
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']);
|
||||
$MessagePush->doctorHaveNewInquiry();
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Amqp\Producer\AssignDoctorDelayDirectProducer;
|
||||
use App\Amqp\Producer\AssignDoctorProducer;
|
||||
use App\Constants\DoctorTitleCode;
|
||||
use App\Constants\HttpEnumCode;
|
||||
@ -143,10 +144,11 @@ class CallBackController extends AbstractController
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
|
||||
$message = new AssignDoctorProducer($data);
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
$result = $producer->produce($message);
|
||||
if (!$result) {
|
||||
$message = new AssignDoctorDelayDirectProducer($data);
|
||||
$message->setDelayMs(1000 * 5);
|
||||
$producer = $this->container->get(Producer::class);
|
||||
$res = $producer->produce($message);
|
||||
if (!$res) {
|
||||
Log::getInstance()->info("加入分配医生队列失败");
|
||||
return $server->serve();
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Amqp\Producer\AssignDoctorDelayDirectProducer;
|
||||
use App\Amqp\Producer\AssignDoctorProducer;
|
||||
use App\Amqp\Producer\AutoCompleteInquiryDelayDirectProducer;
|
||||
use App\Amqp\Producer\AutoFinishInquiryDelayDirectProducer;
|
||||
@ -325,46 +326,13 @@ class TestController extends AbstractController
|
||||
}
|
||||
|
||||
public function test_15(){
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = 1;
|
||||
|
||||
$wg = new \Hyperf\Utils\WaitGroup();
|
||||
$channel = new Channel();
|
||||
$wg->add(2);
|
||||
$message = new AssignDoctorDelayDirectProducer($data);
|
||||
$message->setDelayMs(1000 * 10);
|
||||
$producer = $this->container->get(Producer::class);
|
||||
$res = $producer->produce($message);
|
||||
|
||||
co(function () use ($wg,$channel) {
|
||||
defer(function() use ($wg) {
|
||||
dump("执行了defer");
|
||||
$wg->done();
|
||||
});
|
||||
|
||||
dump("执行了协程1");
|
||||
});
|
||||
|
||||
co(function () use ($wg,$channel) {
|
||||
defer(function() use ($wg) {
|
||||
dump("执行了defer");
|
||||
$wg->done();
|
||||
});
|
||||
|
||||
dump("执行了协程2");
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$wg->wait();
|
||||
|
||||
$res = $channel->isEmpty();
|
||||
if ($res){
|
||||
dump("存在异常");
|
||||
}
|
||||
|
||||
$res = $channel->close();
|
||||
dump($res);
|
||||
|
||||
$a = $wg->count();
|
||||
dump($a);
|
||||
|
||||
dump("执行完毕");
|
||||
}
|
||||
}
|
||||
@ -1303,7 +1303,8 @@ class InquiryService extends BaseService
|
||||
|
||||
$redis->incr($redis_key);
|
||||
} catch (\Exception $e) {
|
||||
throw new BusinessException("检测问诊订单执行退款次数失败:" . $e->getMessage());
|
||||
Log::getInstance()->error("检测问诊订单执行退款次数失败:" . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Amqp\Producer\AssignDoctorDelayDirectProducer;
|
||||
use App\Amqp\Producer\AssignDoctorProducer;
|
||||
use App\Amqp\Producer\CancelUnpayOrdersDelayDirectProducer;
|
||||
use App\Constants\DoctorTitleCode;
|
||||
@ -852,10 +853,11 @@ class PatientOrderService extends BaseService
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
|
||||
$message = new AssignDoctorProducer($data);
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
$result = $producer->produce($message);
|
||||
if (!$result) {
|
||||
$message = new AssignDoctorDelayDirectProducer($data);
|
||||
$message->setDelayMs(1000 * 5);
|
||||
$producer = $this->container->get(Producer::class);
|
||||
$res = $producer->produce($message);
|
||||
if (!$res) {
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "分配医生失败");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user