当前位置: 首页 > news >正文

电商网站设计公司有哪些广州网站关键词优化推广

电商网站设计公司有哪些,广州网站关键词优化推广,网站建设 功能需求,360建筑网中级机械工程师招聘往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的两篇博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 简介 首先,workflow是任务流的意…往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的两篇博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 简介 首先,workflow是任务流的意思,在workflow中万物皆为任务流.任务流分为以下两种 串联:就像链表一样,前面的任务执行完了后执行后面的并联:可以理解为开了多个线程,并发执行任务 示例代码 首先,还是老规矩,先看代码示例,我会将所有新出现的成员一一进行介绍 #include workflow/WFFacilities.h void seriesCallback(const SeriesWork *series){fprintf(stderr,series callback , free pkey\n);std::string *pkey static_caststd::string *(series-get_context());delete pkey; } void callback(WFRedisTask *redisTask){protocol::RedisRequest *req redisTask-get_req();protocol::RedisResponse *resp redisTask-get_resp();int state redisTask-get_state();int error redisTask-get_error();protocol::RedisValue value;//value对象专门用来存储redis任务的结果switch (state){case WFT_STATE_SYS_ERROR:fprintf(stderr,system error: %s\n, strerror(error));break;case WFT_STATE_DNS_ERROR:fprintf(stderr,dns error: %s\n, gai_strerror(error));break;case WFT_STATE_SUCCESS:resp-get_result(value);if(value.is_error()){fprintf(stderr,redis error\n);state WFT_STATE_TASK_ERROR;}break;}if (state ! WFT_STATE_SUCCESS){fprintf(stderr, Failed\n);return;}else{fprintf(stderr, Success!\n);}std::string cmd;req-get_command(cmd);if(cmdSET){//firstTask的基本工作做完了//创建新任务把新任务加入到本序列的末尾fprintf(stderr,first task callback begins\n);std::string *pkey static_caststd::string *(redisTask-user_data);WFRedisTask *secondTask WFTaskFactory::create_redis_task(redis://127.0.0.1:6379,0,callback);protocol::RedisRequest *req secondTask-get_req();req-set_request(GET,{*pkey});SeriesWork* series series_of(redisTask);series-set_context(static_castvoid *(pkey));series-set_callback(seriesCallback);series-push_back(secondTask);fprintf(stderr,first task callback ends\n);}else{//secondTask的基本工作做完了fprintf(stderr,second task callback begins\n);fprintf(stderr, redis request, cmd %s\n, cmd.c_str());if (value.is_string()){fprintf(stderr, value is a string, value %s\n, value.string_value().c_str());}else if (value.is_array()){fprintf(stderr, value is string array\n);for (size_t i 0; i value.arr_size(); i){fprintf(stderr, value at %lu %s\n, i, value.arr_at(i).string_value().c_str());}}fprintf(stderr,second task callback ends\n);}} int main(){//创建redis任务//std::string key 43key1;std::string * pkey new std::string(43key2);WFRedisTask *firstTask WFTaskFactory::create_redis_task(redis://127.0.0.1:6379,0,callback);//设置redis任务的属性protocol::RedisRequest *req firstTask-get_req();req-set_request(SET,{*pkey, 200});firstTask-user_data static_castvoid *(pkey);//启动redis任务firstTask-start(); }示例剖析 首先我们先看见main函数中第77行firstTask-user_data,如下是该成员的源码实现截图,为一个void*指针,通过变量名我们可以知道这是用来存储用户上下文的变量,可以在响应回调函数中将数据取出来进行使用(如43行中取出使用) 任务流 series_of(redisTask)函数可以通过任务流节点获取到该任务节点所属的任务流的指针(在main函数中调用的firstTask-start();便是创建了一个任务流),set_context()与上面的user_data类似,不过set_context设置的生存周期在整个任务流的生存周期,而user_data的生存周期只在所属的任务流节点的生存周期set_callback()用来设置该任务流的清理回调函数,调用时机在该任务流所有任务节点全部执行完毕之后 series-push_back(secondTask):将secondTask这个任务添加在任务流的末尾节点 代码执行流程梳理 main函数中设置了一个redis任务,任务将执行SET 43key2 200这个指令在callback回调函数中,找到该任务所属的任务流,并创建一个新的任务执行GET 43key2这个命令,并将这个任务插在任务流后面,在callback回调函数中,执行53行开始的代码
http://www.pierceye.com/news/964776/

相关文章:

  • 上海专业网站建设市场网站开发验收报告
  • 怎么做网站视频教程做广告牌子
  • 合肥做网站公网站设网页设计
  • 罗田做网站凡科网小程序
  • 玻璃钢产品哪个网站做推广好.加强网站安全建设
  • 扬州公司网站建设网络建设与管理包括哪些方面
  • 我的网站域名福州网站的优化
  • 威海市网站建设微信在线登录平台
  • 2014网站设计成都网站设计合理柚v米科技
  • 建设自己网站需要多钱网站规划与设计就业
  • 用flash做的网站欣赏手机网站图片切换jquery
  • 昆明做网站seo网站推广策略什么时候
  • 网站添加 百度商桥wordpress 友情链接 代码
  • 一鸿建设设计网站百家号排名
  • 网站最新一次改版时间什么意思电商平台应该如何推广
  • 网站设计制作程序网站开发列表
  • 企业网站建设需要哪些费用做算法的网站
  • 很大气的网站 营销js特效网站展示
  • 南宁建站程序成都新线加网站建设
  • 用微软雅黑做网站可以吗wordpress游客发帖插件
  • 网站备案怎样提交管局网页电商设计
  • 郑州华恩科技做网站怎么样网络竞价推广托管公司
  • 都江堰住房和城乡建设厅网站哈尔滨网站建设方案维护
  • 九江网站网站建设原始传奇经典复古
  • 宽屏营销型网站源码安微省住房和城乡建设厅网站
  • 做暖视频网站免费搜索引擎营销的模式有
  • 网站建设需要的条件榆林北京网站建设
  • 分类信息网站推广的意义wordpress安装教程wamp
  • 免费自助建站全系统建设银行永泰支行网站
  • 建网络商城网站如何开公司做网站