跳到主要内容

service_pool

简介

一个可以指定域和协程数量的协程池,copool是这个库的“进阶版” 与copool不同的是,service_pool协程池在创建之后不会新增工作协程数量

组件接口

ServicePool.gs

协程池对象

函数原型函数作用
mixed get_property(string key)获取属性值
string get_name()获取名称
string get_desc()获取描述
int get_queue_size()获取队列大小
void dispatch_service(function fn, int timeout_seconds = -1)向协程池提交一项任务(注意与service_pool.dispatch_service是两个不同的函数)
void dispatch_slow_service(function fn, int warning_seconds, int timeout_seconds = -1)向协程池提交一项任务,超时警告使用独立的时限设置
void wait_finish()等待协程池处理完成(注意:所有协程将退出)
int get_drop_times()获取丢弃计数
void reset_drop_times()重置丢弃计数
int get_process_count()获取实际处理次数

service_pool.gs

函数原型函数作用
object new_pool(string name, map para = )创建一个新的协程池,默认情况下不同协程池在不同的域上
void close_pool(string name)关闭一个协程池
void dispatch_service(function fn, string name, int timeout_seconds = -1)向指定的协程池提交一项任务
bool run_service_sync(array jobs, int co_count)自动创建一个匿名协程池并提交一组任务,阻塞并等待所有任务执行完成;执行完成后销毁匿名协程池
object find_pool(string name)根据协程池创建时指定的名称,获取一个协程池
void dump()打印当前所有协程池信息
void dump_anonymous()调试接口 - 输出匿名协程池信息
void top(string name, float total_seconds = 10, float interval = 1, map prev_dict = nil)调试接口 - top协程池队列信息