123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace Jobs\Controller;
- use Mall\Framework\Factory;
- use Mall\Framework\Core\ErrorCode;
- use Jobs\Controller\CJobObject;
- use Jobs\Controller\BaseController;
- use Jobs\Model\MQueue;
- use think\Error;
- class CAddJob extends BaseController
- {
- private $objMQueue;
- public function __construct()
- {
- parent::__construct();
- $config = Factory::config()->all();
- $this->config = $config;
- $this->logger = Factory::logs($this->config['logPath'] ?:'', $this->config['logSaveFileApp'] ?:'', $this->config['app_name'] ?:'');
- $this->objMQueue = MQueue::getQueue($this->config['job']['queue'], $this->logger);
- if(!is_object($this->objMQueue)){
- exit('初始化队列失败');
- }
- $this->objMQueue->setTopics($this->config['job']['topics']);
- }
-
- public function add()
- {
-
-
- $params['topicName'] = $this->request->param('topicName');
- $params['topicClass'] = $this->request->param('topicClass');
- $params['topicMethon'] = $this->request->param('topicMethon');
- $params['topicMethonParams'] = $this->request->param('topicMethonParams');
- foreach ($params as $key => $value){
- if(empty($value)){
- parent::sendOutput('参数'.$key.'值为空', ErrorCode::$paramError);
- }
- }
- $jobExtras = [
- 'delay' => mt_rand(0, 100) * 1000,
- 'priority' => 1,
- ];
- if(!is_array($params['topicMethonParams'])){
- $params['topicMethonParams'] = json_decode(htmlspecialchars_decode($params['topicMethonParams'], ENT_QUOTES), true);
- }
- $job = new CJobObject($params['topicName'], $params['topicClass'], $params['topicMethon'], $params['topicMethonParams'], $jobExtras);
- $result = $this->objMQueue->push($params['topicName'], $job);
- if($result) {
- parent::sendOutput('添加队列成功');
- }
- parent::sendOutput('添加队列失败',ErrorCode::$redisWriteError);
- }
- }
|