genius13/codeigniter-job-queue-redis

基于redis的任务队列

0.1 2014-09-16 06:22 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:00:31 UTC


README

#Codeigniter-jobQueue ###基于redis和mcurl的任务队列 Marcos Sanz

如果您有任何问题或发现错误,请随时通过电子邮件与我联系。

##安装 首先,您必须安装 codeigniter-redis 库和 codeigniter-mcurl 库。只需将此包中的文件复制到应用程序文件夹中的相应文件夹。例如,/application/libraries/jobs.php。

###加载库 在 /application/config/autoload.php

$autoload['libraries'] = array('jobs');

$this -> load -> library('jobs');

##应用程序使用变量

  • $at ($timestamp) => 想要执行任务的Unix时间戳
  • $queue => 队列名称。例如:high、normal、low、mail、archive
  • $controller => 控制器名称
  • $method => 控制器中的方法名称(默认:index)
  • $params => 参数数组(默认:null)。例如:array('param1','param2','param3')
  • $description => 任务的描述(默认:null)。例如:UpdateUserProfile
  • $belongTo ($user_id) => 任务的用户ID(默认:null)。
  • $stat => 任务状态。例如:delayed、waiting、running、complete和failed

###创建新任务函数

create($queue, $controller, $method, $params, $description, $belongTo)

例如

$this -> jobs -> create('high', 'users', 'check_users', array('10'), 'checkUsers','1');

###创建新的计划任务函数

create_at($at, $queue, $controller, $method, $params, $description, $belongTo)

例如

$this -> jobs -> create_at(1353456000, 'high', 'users', 'check_users', array('10'), 'checkUsers','1');

###获取给定队列的大小函数

get_queue_size($queue)

例如

$this -> jobs -> get_queue_size('low');

###获取延迟队列的大小函数

get_delayed_queue_size()

例如

$this -> jobs -> get_delayed_queue_size();

###获取给定时间戳的延迟队列大小函数

get_delayed_timestamp_size($timestamp)

例如

$this -> jobs -> get_delayed_timestamp_size(1353456000);

###清空队列函数

clear($queue)

例如

$this -> jobs -> clear('low');

###销毁队列函数

destroy($queue)

例如

$this -> jobs -> destroy('low');

###移除任务函数

//TODO

###获取给定队列的预览函数

peek($queue)

例如

$this -> jobs -> peek('low');

###获取队列成员函数

queues()

例如

$this -> jobs -> queues();

###获取工作者的当前任务和工作者函数

get_workers()

例如

$this -> jobs -> get_workers();

###获取任务状态或从用户获取任务状态函数

get_statuses_jobs($user_id)

例如

$this -> jobs -> get_statuses_jobs(); or $this -> jobs -> get_statuses_jobs(2341);

###获取给定状态的数量函数

get_stat($stat)

例如

$this -> jobs -> get_stat('running');

###清除状态函数

clear_stat()

例如

$this -> jobs -> clear_stat();

##工作者使用变量

  • $worker_name => 机器或工作者的名称(默认:worker)
  • $queues => 队列名称。例如:high
  • $interval => 工作者休眠的秒数(默认:null)

###主工作者(执行任务)函数

worker($worker_name, $queues, $interval)

###延迟工作者(重新组织计划任务)函数

worker_delayed($worker_name, $interval)

谢谢
-Marcos Sanz
marcossanzlatorre@gmail.com
@marsanla