hinashiki / fuelphp-queue
支持 FuelPHP 1.7.x 或更高版本,添加原始队列系统
Requires
- composer/installers: ~1.0
This package is not auto-updated.
Last update: 2024-09-28 17:20:31 UTC
README
将原始队列系统添加到 FuelPHP 1.7.x 或更高版本。
这是一个 FuelPHP 包。如果您想使用它,请将其作为包使用。
安装方法: http://fuelphp.com/docs/general/packages.html#/installing
准备
- 安装 Orm 包。
此包依赖于 fuelphp orm 包。
如果您没有 orm 包,请在使用之前安装。
php oil package install orm
- 迁移数据库。
此包需要创建 task_queue 表。
您必须准备支持 Fuel\Core\DB 类的数据库。
如果您已经有数据库,可以通过此包进行迁移。
php oil refine migrate --packages=fuelphp-queue
简单用法
- 在您的应用程序中推送队列。
\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 文件在您的应用程序的 tmp 目录中创建。
您可以设置原始 pid 前缀以避免名称冲突。
默认值是 queue
。
队列的逻辑删除
逻辑删除方案设置。
默认值如下。
- 不删除 =
0
- 已删除 =
1