Очередь Amazon AWS и Beanstalkd Задание не перемещается из списка текущих заданий, отложенных в текущие задания, готовые к выполнению.

Я установил beanstalkd на свой сервер amazon aws ec2. Но когда я ставлю задание в очередь, оно перемещается в текущее задание с задержкой. Но он не продвигается вперед к готовности к текущим заданиям, хотя время задержки составляет всего 5-10 секунд.

Что-то не так в настройке сервера или настройке beanstalkd?

Помощь будет очень признательна.

Ниже приведен код. Я использую платформу Laravel и другое замечание, что на моем сервере EC2 установлена ​​Ubuntu 12.04 LTS.

class ShareOneCommentCommandHandler implements CommandHandler{

/**
 * Handle the command
 * @param $command
 * @return mixed
 */
public function handle($command)
{
    $date = Carbon::now()->addSeconds(5);
    Queue::later(
        $date,
        'Acme\Commands\Share\PublishPost',
        [  'uid'      => Auth::user()->id,
           'accounts' => $command->accounts,
           'message'  => $command->message,
           'link'     => $command->link,
           'title'    => $command->linktitle,
           'domain'   => $command->linkdomain,
           'image'    => $command->linkimage
        ]
    );
}

} 

person Meet    schedule 20.08.2014    source источник
comment
какую команду/функцию вы используете, чтобы поставить задание в очередь? Можете ли вы опубликовать код PHP, который выполняет вставку.   -  person Alister Bulman    schedule 21.08.2014


Ответы (1)


Я сам не использую Laravel, но вижу, что Queue::later() может принимать либо DateTime (который расширяет Carbon), либо простое целое число для «количества секунд в будущем». Протокол BeanstalkD не имеет дело с датами, а только с количеством секунд.

Если вы можете запускать задания через Beanstalkd без функции later() (чтобы подтвердить, что сервер beanstalkd и Laraval в целом работают), то я бы изменил функцию, чтобы просто использовать количество секунд напрямую и посмотреть, работает ли это.

Queue::later(5/*seconds*/, 'Command\Class', [...]);
person Alister Bulman    schedule 21.08.2014
comment
Я разбираюсь в проблеме. Это была проблема с версией Beanstalkd. Ubuntu 12.04 LTS устанавливает старую версию beanstalkd, поэтому мне пришлось добавить PPA, чтобы установить последнюю версию. Спасибо за помощь. - person Meet; 21.08.2014