Zend作业队列API - 未知错误

时间:2016-11-22 14:58:52

标签: php zend-framework zend-server

我正在尝试在Zend作业队列API中使用createHttpJob方法,但不断遇到以下错误:

Unable to send createHttpJob request to the Job Queue server. Unknown error.

我正在使用的代码是:

// Set up job queue
$queue = new \ZendJobQueue();

// Queue email to be sent
$job_id = null;
$counter = 10;
do {
    try {
        $job_id = $queue->createHttpJob($this->url()->fromRoute('email', array('action' => 'send-email')), array('email_id' => $email_id), array('job_timeout' => 14400, 'name' => 'Sending Email: ' . $email_id));
    } catch (\Exception $e) {
        usleep(100000); // 0.1 seconds
        $counter--;
        if($counter <= 0) {
            $response = $this->getResponse();
            $response->setContent(json_encode(array(
                    'success' => false,
                    'zend_queue' => true,
                    'exception' => $e->getMessage(),
                    'stack' => $e->getTraceAsString()
            )));
            return $response;
        }
    }
} while (!$job_id && $counter > 0);

基本上尝试将作业添加到队列中,并且在10次尝试失败后,它会将错误返回给前端。

当然它是一个unknown error,我不希望任何人能够彻底解决这个问题,但我想知道是否有人之前遇到过这个问题,他们是否能够做任何事情防止它?

提前致谢!

1 个答案:

答案 0 :(得分:0)

所以我找到了这条小信息here

Parameters sent to a job cannot exceed the size defined in the 'zend_jobqueue.max_message_size' directive which has a maximum size limit of 64KB.

我有时会发送超过64KB的文件,这恰好是产生此unknown error的请求。我不知道这是否是问题的确切原因(如果是这样,那么有一个更具描述性的错误信息就好了!),但这些请求似乎现在都没有问题。

希望这将有助于将来的某个人!