Home  >  Article  >  Backend Development  >  php-resque怎么才能做到执行tp框架中的job?

php-resque怎么才能做到执行tp框架中的job?

WBOY
WBOYOriginal
2016-06-06 20:15:041566browse

用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>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn