search

Home  >  Q&A  >  body text

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

用cli模式运行worker
但是提示找不到job类
不知道在tp的哪里写job类

<?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);
    }
}
巴扎黑巴扎黑2896 days ago313

reply all(2)I'll reply

  • 阿神

    阿神2017-04-10 17:03:42

    不建议cli模式运行框架 如果需要框架中的模块 直接引用就好了啦

    reply
    0
  • 迷茫

    迷茫2017-04-10 17:03:42

    将Job类改为Job.class.php并添加命名空间
    public function getInstance()

    {
        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;
    }

    reply
    0
  • Cancelreply