搜狗WorkFlow学习
文章平均质量分 77
关于搜狗开源框架workflow的学习
敬先生
这个作者很懒,什么都没留下…
展开
-
workflow源码解析:epoll
综上,workflow 通过mpoller_create()创建poller,通过mpoller_start()启动poller。这样就把每个poller放入每个线程运行,线程一直循环监听epoll的变化,如果有消息变化就处理消息。epoll_wait 等待epoll中文件描述符变为可活动的,然后返回结果。epoll_ctl 在epoll中增加、删除文件描述符。epoll_create 创建一个epoll。epoll主要有三个核心函数。原创 2024-01-26 14:22:29 · 520 阅读 · 0 评论 -
workflow源码解析:http客户端(一)
这里如何产生的route_result_.request_object,是通过dns去做的,这里先略过,在dns那一节详细阐述。(7)request_idle_conn()为复用连接,没有则创建新的连接 this->request_new_conn。连接池什么的都在target里。(a)如果没有可以复用的连接,我们先去建立连接,然后把connect操作挂到epoll上面监听(异步connect)(5)scheduler是在 WFComplexClientTask的初始化列表中创建,此时传入的是NULL。原创 2024-01-21 16:04:43 · 595 阅读 · 0 评论 -
【转载】workflow 源码解析 : TimerTask
对比回看下ThreadTask的结构,就大概知道wf的继承架构。转载 2024-01-19 08:55:19 · 95 阅读 · 0 评论 -
workflow源码解析:ThreadTask
request() 函数把任务扔进线程池队列等待执行,线程池会从队列拿到这个任务,然后执行executor_thread_routine。__WFThreadTask__目前还未用到,暂不清楚。原创 2024-01-16 22:16:07 · 904 阅读 · 0 评论 -
【转载】workflow 源码解析 : 基础数据结构 list
项目源码 : https://github.com/sogou/workflow更加详细的源码注释可看 : https://github.com/chanchann/workflow_annotation以下的代码源文件 :我们来分析一下workflow中最为基础的数据结构 : list, 是内核链表的写法,如果不熟悉内核list的操作,很多workflow的操作也会一头雾水。转载 2024-01-12 15:53:30 · 185 阅读 · 0 评论 -
【转载】workflow 源码解析 : 深入分析 workflow 线程池
第15到17行的作用需要特别说明一下,这是在线程池内部线程调用destroy线程池会走到这里,调用destroy的线程将会等待线程池内其他线程退出,等运行到第15-17行时,就需要销毁线程池。结构体的定义中,get_head就是读队列的队头,put_head是放置队列的队头,put_tail是放置队列的队尾。对于线程池而言, msg的类型是__thrdpool_task_entry,其拥有两个参数,第一个参数是link,其类似于一个next指针用于指向下一个task。该方法的实现比较简单,不做过多解析。转载 2024-01-12 15:27:24 · 499 阅读 · 0 评论