MessageController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. namespace backend\controllers;
  3. use common\logic\Amqp\Message;
  4. use common\logic\Amqp\Queue;
  5. use Yii;
  6. class MessageController extends BaseController
  7. {
  8. /**
  9. * 发送消息 (接受多条)
  10. * @author: libingke
  11. */
  12. public function actionSend()
  13. {
  14. //获取接收参数 利用model验证或者判断
  15. $params = Yii::$app->request->post();
  16. $post = [
  17. 'message1' => 'message 1',
  18. 'message2' => 'message 2',
  19. 'message3' => 'message 3',
  20. 'queue' => 'y1',
  21. ];
  22. try {
  23. $queue = (new Queue())->create($post['queue']);
  24. if ($queue['status'] == 1) {
  25. $message = new Message($queue['result']);
  26. $message->send($post['message1'], $post['queue']);
  27. $message->send($post['message2'], $post['queue']);
  28. $message->send($post['message3'], $post['queue']);
  29. return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
  30. } else {
  31. return ['code' => $queue['status'], 'message' => $queue['result']];
  32. }
  33. } catch (\common\logic\Amqp\Exception $e) {
  34. $result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
  35. }
  36. return $result;
  37. }
  38. /**
  39. * 发送消息 (接受多条)
  40. * @author: libingke
  41. */
  42. public function actionBatchSend()
  43. {
  44. //$params = Yii::$app->request->post();
  45. $post = [
  46. 'messages' => ['message 1', 'message 2'],
  47. 'queue' => 'task_queue',
  48. ];
  49. try {
  50. $model = new Message();
  51. $data = $model->batchSend($post['messages'], $post['queue']);
  52. $result = ['code' => 200, 'message' => Yii::t('common', 'OK'), 'data' => $data];
  53. } catch (\common\logic\Amqp\Exception $e) {
  54. $result = ['code' => $e->getCode(), 'message' => $e->getMessage(), 'data' => []];
  55. }
  56. return $result;
  57. }
  58. /**
  59. * 消费消息
  60. * @author: libingke
  61. */
  62. public function actionReceive()
  63. {
  64. //获取接收参数 利用model验证或者判断
  65. $params = Yii::$app->request->post();
  66. $post = [
  67. 'message1' => 'message 1',
  68. 'message2' => 'message 2',
  69. 'message3' => 'message 3',
  70. 'queue' => 'y1',
  71. ];
  72. try {
  73. $queue = (new Queue())->create($post['queue']);
  74. if ($queue['status'] == 1) {
  75. $message = new Message($queue['result']);
  76. $message->receive($post['queue']);
  77. return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
  78. } else {
  79. return ['code' => $queue['status'], 'message' => $queue['result']];
  80. }
  81. } catch (\common\logic\Amqp\Exception $e) {
  82. $result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
  83. }
  84. return $result;
  85. }
  86. /**
  87. * 批量消费消息
  88. * @author: libingke
  89. */
  90. public function actionBatchReceive()
  91. {
  92. //获取接收参数 利用model验证或者判断
  93. $params = Yii::$app->request->post();
  94. $post = [
  95. 'message1' => 'message 1',
  96. 'message2' => 'message 2',
  97. 'message3' => 'message 3',
  98. 'queue' => 'y1',
  99. ];
  100. try {
  101. $queue = (new Queue())->create($post['queue']);
  102. if ($queue['status'] == 1) {
  103. $message = new Message($queue['result']);
  104. $message->receive($post['queue']);
  105. return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
  106. } else {
  107. return ['code' => $queue['status'], 'message' => $queue['result']];
  108. }
  109. } catch (\common\logic\Amqp\Exception $e) {
  110. $result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
  111. }
  112. return $result;
  113. }
  114. /**
  115. * 删除消息
  116. * @author: libingke
  117. */
  118. public function actionDelete()
  119. {
  120. //获取接收参数 利用model验证或者判断
  121. $params = Yii::$app->request->post();
  122. $post = [
  123. 'message1' => 'message 1',
  124. 'message2' => 'message 2',
  125. 'message3' => 'message 3',
  126. 'queue' => 'y1',
  127. ];
  128. try {
  129. $queue = (new Queue())->create($post['queue']);
  130. if ($queue['status'] == 1) {
  131. $message = new Message($queue['result']);
  132. $message->delete($post['message1']);
  133. return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
  134. } else {
  135. return ['code' => $queue['status'], 'message' => $queue['result']];
  136. }
  137. } catch (\common\logic\Amqp\Exception $e) {
  138. $result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
  139. }
  140. return $result;
  141. }
  142. /**
  143. * 批量删除消息
  144. * @author: libingke
  145. */
  146. public function actionBatchDelete()
  147. {
  148. }
  149. }