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协程池队列信息 |