首页  >  文章  >  后端开发  >  php-resque怎么才能做到执行tp框架中的job?

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

WBOY
WBOY原创
2016-06-06 20:15:041523浏览

用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>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn