【发布时间】:2012-10-27 00:43:17
【问题描述】:
我是 redis 的新手,目前我正在使用 PHP resque for redis。如何在 php resque 中定义作业?
【问题讨论】:
我是 redis 的新手,目前我正在使用 PHP resque for redis。如何在 php resque 中定义作业?
【问题讨论】:
这在 2012 年 10 月 13 日发布的最新版本的 PHP-resque 中发生了变化。根据更改日志,“将作业参数包装在一个数组中以提高与 ruby resque 的兼容性。”
这意味着如果您已升级到 PHP-Resque 1.2,您将从 $args[0] 访问作业。
【讨论】:
排队作业
作业排队如下:
require_once 'lib/Resque.php';
// Required if redis is located elsewhere
Resque::setBackend('localhost:6379');
$args = array(
'name' => 'Chris'
);
Resque::enqueue('default', 'My_Job', $args); 定义工作
每个作业都应该在它自己的类中,并包含一个 perform 方法。
class My_Job
{
public function perform()
{
// Work work work
echo $this->args['name'];
}
}
当作业运行时,该类将被实例化,任何参数都将设置为实例化对象上的数组,并可通过 $this->args 访问。
作业引发的任何异常都将导致作业失败 - 请注意此处并确保处理不应导致作业失败的异常。
【讨论】: