Heim  >  Artikel  >  Backend-Entwicklung  >  php-resque怎么才能做到执行tp框架中的job?

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

WBOY
WBOYOriginal
2016-06-06 20:15:041523Durchsuche

用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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn