コード例 #1
0
 /**
  * For records under 200,000, user will download the file immediately.
  * An entry will be made in both the custom_queue_job & custom_queue_request.
  *
  * @return string
  * @throws Exception
  */
 function queueImmediateRequest()
 {
     try {
         // validateRequest:
         if (!$this->validateRequest()) {
             return $this->response;
         }
         if (!isset($this->requestDataSet)) {
             // Prepare dataSet:
             $this->setRequestDataSet();
         }
         $queue_request_token = NULL;
         // Get queue request:
         $queue_criteria = $this->getQueueCriteria($this->requestSearchCriteria->getCriteria());
         $sql_query = get_db_query(TRUE, $this->requestDataSet->name, $this->requestDataSet->columns, $this->requestDataSet->parameters, $this->requestDataSet->sortColumn, $this->requestDataSet->startWith, $this->requestDataSet->limit, NULL);
         if (isset($this->requestDataSet->adjustSql)) {
             eval($this->requestDataSet->adjustSql);
         }
         $token = $this->generateToken();
         $criteria = $this->requestSearchCriteria->getCriteria();
         // Prepare new queue request:
         $queue_request['token'] = $token;
         $queue_request['name'] = strtolower($criteria['global']['type_of_data']);
         $queue_request['request'] = $queue_criteria;
         $queue_request['request_criteria'] = json_encode($criteria);
         $queue_request['status'] = 4;
         // N/A - no file to generate
         if ($this->requestSearchCriteria->getUserCriteria()) {
             $queue_request['user_criteria'] = json_encode($this->requestSearchCriteria->getUserCriteria());
         }
         $queue_request['data_command'] = $sql_query;
         QueueUtil::createImmediateNewQueueRequest($queue_request);
         return $token;
     } catch (Exception $e) {
         LogHelper::log_error('Error Processing Queue Request: ' . $e);
         throw new Exception('Error Processing Queue Request.');
     }
 }