| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace common\helpers;
- use Yii;
- use Closure;
- use Exception;
- use PhpAmqpLib\Message\AMQPMessage;
- /**
- * 任务处理
- *
- * Class TaskHelper
- * @package common\helpers
- */
- class TaskHelper
- {
- /**
- * rabbitMQ 任务消息生产
- * @Author bing
- * @DateTime 2021-04-06 16:51:27 Tuesday
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @param array $data
- * @param string $handler_class
- * @param string $method
- * @param Closure $error_callback
- * @param Closure $success_callback
- * @return int
- */
- public static function pushTaskQueue($exchange,$queue,$data,$handler_class='',$method='',Closure $error_callback = null,Closure $success_callback = null){
- try{
- $task_id = Yii::$app->services->rabbitMq->push(
- $exchange,
- $queue,
- $data,
- $handler_class,
- $method,
- function (AMQPMessage $message)use($error_callback){
- !empty($error_callback) && $error_callback($message);
- },
- function (AMQPMessage $message)use($success_callback){
- !empty($success_callback) && $success_callback($message);
- }
- );
- return $task_id;
- }catch(Exception $e){
- Yii::error('pushTaskQueue 任务消息推送失败:'.$e->getMessage().PHP_EOL);
- return false;
- }
- }
- }
|