codeigniter — PHP Resque Worker не работает?

Я хочу использовать php_resque (https://github.com/chrisboulton/php-resque) для моего проекта codeigniter.
Это функция «тест» для создания новой работы.

public function test() {
$this->load->library('My_Job');

Resque::setBackend('localhost:6379');

$args = array(
'name' => 'Chris'
);

$token = Resque::enqueue('default', 'My_Job', $args, true);

$status = new Resque_Job_Status($token);

Resque::dequeue('default', ['My_Job' => $token]);
}

И это код рабочей библиотеки

putenv("VVERBOSE=1");
putenv("LOGGING=1");
putenv("QUEUE=*");
class My_Job {

public function perform($args) {

$this->load->model('M_sms');
$this->M_sms->ins_msg();
}

}

когда я вызываю ‘test’ (localhost / project_folder / controller / test), функция ‘execute’ в работнике (My_Job.php) не загружается. И статус работы 1. Что здесь не так?

когда я использовал следующий код для отладки

VERBOSE=1 QUEUE=default php resque.php

он говорит, что не может найти работу класса

0

Решение

В моем коде проблема в том, что работник не знает, где находится класс работы. Как я уже упоминал выше, я получаю статус 1 (STATUS_WAITING), что означает «Работа все еще в очереди». Это произошло со мной, потому что я пытался загрузить класс задания как библиотеку в своем проекте codeigniter.

$this->load->library('My_Job');

Теперь я изменил свой код в соответствии с этим руководством Программа Veryday

В этом уроке объясняется пошаговая процедура настройки PHP-спасательное

0

Другие решения

Вы должны включить автозагрузчик приложения:

QUEUE=* VVERBOSE=1 REDIS_BACKEND=localhost:9999 APP_INCLUDE=./path/to/loader.php php resque.php

http://kamisama.me/2012/10/12/background-jobs-with-php-and-resque-part-4-managing-worker/

0

По вопросам рекламы [email protected]