josh-g / fuelphp-queue

此包已被废弃且不再维护。未建议替代包。

FuelPHP 1.7.x 或更高版本,添加原始队列系统

安装: 674

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 1

类型:fuel-package

0.2.2 2016-09-29 11:29 UTC

This package is not auto-updated.

Last update: 2018-09-21 14:37:30 UTC


README

将原始队列系统添加到 FuelPHP 1.7.x 或更高版本。
这是一个 FuelPHP 包。如果您想使用它,请将其作为包使用。
如何安装:http://fuelphp.com/docs/general/packages.html#/installing

准备

  1. 安装 Orm 包。
    此包依赖于 fuelphp orm 包。
    如果您没有 orm 包,请在使用之前安装。
php oil package install orm
  • 迁移数据库。
    此包需要创建 task_queue 表。
    您必须准备支持 Fuel\Core\DB 类的数据库。
    如果您已经有了数据库,可以通过此包进行迁移。
php oil refine migrate --packages=fuelphp-queue

简单使用

  1. 将队列推送到您的应用程序。
\Model_TaskQueue::save_queue(
    "Static::method",
    array($arg1, $arg2 ...)
);
  • 通过任务运行队列。
php oil refine queue

Model_Taskqueue 文档

save_queue($method, $options, $duplicate_type = null, $priority = null)

推送任务队列。

字符串 $method

您想调用的方法名。方法必须是静态定义的。

数组 $options

方法的参数。

整数 $duplicate_type

您可以定义并设置队列类型。
如果您并行运行队列,$duplicate_type 可以设置每个类型的最大执行队列。
如果您使用此选项,请也检查配置 queue.duplicate_type

整数 $priority

您可以定义并设置队列的优先级。
如果您在 task_queues 中有多个任务,Model_TaskQueue::pick() 将选择优先级最低的队列。
如果您使用此选项,请也检查配置 queue.queue_default_priority

任务文档

php oil refine queues

运行一个队列。队列由 Model_Taskqueue::pickup() 选择。
此任务可以并行使用。您也可以通过 queue.queue_parallel_number 设置执行限制。

php oil refine queues:clean

删除超过 2 周前的成功队列。
此删除是物理删除。
如果您更改此期限,请更改配置 queue.success_queue_delete_term

配置文档

queue.duplicate_type

可以设置整数键和整数值。
键是数据库表中的 taks_queues.duplicate_type 值,值是并行执行限制。
如果在此配置中未设置值而在数据库中设置了值,则Model_TaskQueue::pickup()将抛出OutOfRangeException。

注意:您不能在此配置中设置0键,因为0用作默认值。

queue.zombie_recover_time

队列执行时间限制。
如果队列状态在此时间内保持为'exec',则状态将恢复为'wait'。
当使用Model_Taskqueue::recover_zombie_queues()或运行下一个队列任务时。
默认值是-1小时

queue.success_queue_delete_term

设置物理删除期限。
当调用任务php oil refine queues:clean时,删除您设置的之前成功的老队列。
默认值是-14天

queue.queue_parallel_number

可以并行执行任务queues的数量。
默认值是3

queue.queue_default_priority

可以设置优先级数字。0是最高的优先级。
您可以在使用Model_TaskQueue::save_queue()插入队列时设置任务优先级。
默认值是100

queue.queue_pid_prefix

任务queues通过pid文件管理。pid文件是在您的应用程序的临时目录中创建的。
您可以为避免名称冲突而设置原始pid前缀。
默认值是queue

queue.logical_delete

逻辑删除模式设置。
默认值如上所述。

  • 不删除 = 0
  • 已删除 = 1