> 백엔드 개발 > PHP 튜토리얼 > php-resque怎么才能做到执行tp框架中的job?

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

WBOY
풀어 주다: 2016-06-06 20:15:04
원래의
1600명이 탐색했습니다.

用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>
로그인 후 복사
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿