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