PHP Resque Worker 不工作?
PHP Resque Worker not working?
我想为我的 codeigniter 项目使用 php_resque(https://github.com/chrisboulton/php-resque)。
这是创建新作业的函数 'test'。
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) 时,worker(My_Job.php) 中的 'perform' 函数没有加载。作业状态为 1。这里有什么问题?
编辑
当我使用以下代码进行调试时
VERBOSE=1 QUEUE=default php resque.php
它说找不到工作class
您必须包含您的应用程序自动加载器:
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/
在我的代码中,问题是,工人不知道工作的位置 class。正如我上面提到的,我得到状态 1 (STATUS_WAITING),这意味着 'Job is still queued'。这是我想到的,因为我试图将作业 class 作为库加载到我的 codeigniter 项目中。
$this->load->library('My_Job');
现在我根据本教程更改了我的代码Programe Veryday
本教程逐步说明设置过程 php-resque
我想为我的 codeigniter 项目使用 php_resque(https://github.com/chrisboulton/php-resque)。 这是创建新作业的函数 'test'。
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) 时,worker(My_Job.php) 中的 'perform' 函数没有加载。作业状态为 1。这里有什么问题?
编辑
当我使用以下代码进行调试时
VERBOSE=1 QUEUE=default php resque.php
它说找不到工作class
您必须包含您的应用程序自动加载器:
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/
在我的代码中,问题是,工人不知道工作的位置 class。正如我上面提到的,我得到状态 1 (STATUS_WAITING),这意味着 'Job is still queued'。这是我想到的,因为我试图将作业 class 作为库加载到我的 codeigniter 项目中。
$this->load->library('My_Job');
现在我根据本教程更改了我的代码Programe Veryday
本教程逐步说明设置过程 php-resque