Home > Article > Backend Development > php-resque怎么才能做到执行tp框架中的job?
用cli模式运行worker
但是提示找不到job类
不知道在tp的哪里写job类
<code><?php namespace Home\Controller; use Think\Controller; class ResqueController extends Controller { public function resque(){ require_once __DIR__ . '/../../../../php-resque/bin/resque'; // $job = new PHP_Job; // $job->perform(); // dump($job); } }</code>
用cli模式运行worker
但是提示找不到job类
不知道在tp的哪里写job类
<code><?php namespace Home\Controller; use Think\Controller; class ResqueController extends Controller { public function resque(){ require_once __DIR__ . '/../../../../php-resque/bin/resque'; // $job = new PHP_Job; // $job->perform(); // dump($job); } }</code>
不建议cli模式运行框架 如果需要框架中的模块 直接引用就好了啦
将Job类改为Job.class.php并添加命名空间
public function getInstance()
<code>{ if (!is_null($this->instance)) { return $this->instance; } /* if(!class_exists($this->payload['class'])) { throw new \Resque_Exception( 'Could not find job class ' . $this->payload['class'] . '.' ); } if(!method_exists($this->payload['class'], 'perform')) { throw new \Resque_Exception( 'Job class ' . $this->payload['class'] . ' does not contain a perform method.' ); }*/ // 将任务类放到Job文件夹即可 $hand = '\path\to\Resque\Job\\' . $this->payload['class']; $this->instance = new $hand; $this->instance->job = $this; $this->instance->args = $this->getArguments(); $this->instance->queue = $this->queue; return $this->instance; }</code>