gearman-client与gearman-worker的示例源码-C++版

windows平台下Gearman的一个Worker和Client实例,C++实现 由于最近工作需要,要涉及Gearman的Client和worker的开发工作,所以研究了一下环境搭建和Client、Worker的开发。 环境搭建工作就不多说了,网上资料很多,不管是部署在linux上(常规方式)还是通过cygwin方式部署到windows上,都是可行的。 linux方式部署安装步骤大家可以参考这个文章: http://blog.chinaunix.net/uid-2 阅读详情
官方的DEMO如下:
​ http://gearman.info/libgearman/examples.html
​ ​
​ 闲言少述,直接上源码:
​client
​
  1. /*
  2.  * File:
  3.  *    simple-gearman-client.cpp
  4.  * Auth:
  5.  * Hank(hongkuiyan@yeah.net)
  6.  * Desc:
  7.  * Example code to show how to send a string to a function called "test_function" .
  8.  * Cypt:
  9.  * Gearman server and library Version 1.1.12
  10.  * Compile:
  11.  * gcc -o simple-gearman-client simple-gearman-client.cpp -I/usr/local/gearman/include -L/usr/local/gearman/lib -lgearman 
  12.  * Usage:
  13.  * ./simple-gearman-client 
  14.  */

  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <string.h>
  18. #include <unistd.h>
  19. #include <libgearman/gearman.h>

  20. using namespace std;

  21. int main(int argc, char* argv[])
  22. {
  23.     gearman_return_t gearRet;
  24.     gearman_client_st* gearClient;
  25.     
  26.     char* gearSvrHost=(char*)"10.10.13.8", *gearSvrPort=(char*)"4730";

  27.     gearClient = gearman_client_create(NULL);
  28.     gearman_client_set_options(gearClient, GEARMAN_CLIENT_FREE_TASKS);
  29.     gearman_client_set_timeout(gearClient, 15000);

  30.     gearRet = gearman_client_add_server(gearClient, gearSvrHost, atoi(gearSvrPort));
  31.     if (gearman_failed(gearRet))
  32.     {
  33.         return EXIT_FAILURE;
  34.     }

  35. #if 1
  36.     
  37.     for (int i=0; i < 5; i++) 
  38.     { 
  39.         gearRet = gearman_client_do_background(gearClient, 
  40.                     "test_function", 
  41.                     NULL, 
  42.                     "param1 param2 345", 
  43.                     (size_t)strlen("param1 param2 345"), 
  44.                     NULL); 
  45.         if (gearRet == GEARMAN_SUCCESS) 
  46.         { 
  47.             fprintf(stdout, "Work success!\n"); 
  48.         } 
  49.         else if (gearRet == GEARMAN_WORK_FAIL) 
  50.         {
  51.             fprintf(stderr, "Work failed\n"); 
  52.         }
  53.         else if (gearRet == GEARMAN_TIMEOUT) 
  54.         { 
  55.             fprintf(stderr, "Work timeout\n"); 
  56.         } 
  57.         else 
  58.         { 
  59.             fprintf(stderr, "%d,%s\n", gearman_client_errno(gearClient), gearman_client_error(gearClient)); 
  60.         } 
  61.     } 

  62. #endif


  63. #if 0    
  64.     gearman_argument_t gearValue = gearman_argument_make(0, 0, 
  65.         "Reverse Me", strlen("Reverse Me"));
  66.     gearman_task_st* gearTask = gearman_execute(gearClient,
  67.         "reverse", strlen("reverse"),
  68.         NULL, 0,
  69.         NULL,
  70.         &gearValue, 0);
  71.     
  72.     /* If gearman_execute() can return NULL on error */
  73.     if (gearTask == NULL) 
  74.     {
  75.         fprintf(stderr, "Error: %s\n", gearman_client_error(gearClient));
  76.         gearman_client_free(gearClient);
  77.         return EXIT_FAILURE;
  78.     }

  79.     /* Make sure the task was run successfully */
  80.     if (gearman_success(gearman_task_return(gearTask)))
  81.     {
  82.         /* Make use of value */
  83.         gearman_result_st *gearResult= gearman_task_result(gearTask);
  84.         printf("%.*s\n", (int)gearman_result_size(gearResult), gearman_result_value(gearResult));
  85.     }
  86. #endif

  87.     gearman_client_free(gearClient);

  88.     return EXIT_SUCCESS;
  89. }


​worker
​
  1. /*
  2.  * File:
  3.  *    simple-gearman-worker.cpp
  4.  * Auth:
  5.  * Hank(hongkuiyan@yeah.net)
  6.  * Desc:
  7.  * Example code to show how to receive a string to a function called "test_function" 
  8.  * Cypt:
  9.  * Gearman server and library Version 1.1.12
  10.  * Compile:
  11.  * gcc -o simple-gearman-worker simple-gearman-worker.cpp -I/usr/local/gearman/include -L/usr/local/gearman/lib -lgearman 
  12.  * Usage:
  13.  * ./simple-gearman-worker 
  14.  */
  15.  
  16. #include <errno.h> 
  17. #include <stdio.h> 
  18. #include <stdlib.h> 
  19. #include <string.h> 
  20. #include <unistd.h> 
  21. #include <iostream> 

  22. #include <libgearman/gearman.h> 
  23.  
  24. using namespace std;

  25. static void *test_function(gearman_job_st *gearJob, 
  26.     void* context, 
  27.     size_t* resultSize,
  28.     gearman_return_t* gearRet);


  29. int main(int argc, char* argv[])
  30. {
  31.     gearman_return_t gearRet;
  32.     gearman_worker_st* gearWorker;

  33.     char* gearSvrHost=(char*)"10.10.13.8", *gearSvrPort=(char*)"4730";
  34.     char* gearContext = new char(50);

  35.     gearWorker = gearman_worker_create(NULL);
  36.     if (gearWorker == NULL)
  37.     {
  38.         cout << "ERROR: " << gearman_worker_error(gearWorker) << endl;    
  39.         return EXIT_FAILURE;    
  40.     }    

  41.     gearRet = gearman_worker_add_server(gearWorker, gearSvrHost, atoi(gearSvrPort));
  42.     if (gearman_failed(gearRet))
  43.     {
  44.         cout << "ERROR: " << gearman_worker_error(gearWorker) << endl;    
  45.         return EXIT_FAILURE;
  46.     }

  47.     gearRet = gearman_worker_add_function(gearWorker, 
  48.         "test_function", 
  49.         0, 
  50.         test_function, 
  51.         gearContext);
  52.     if (gearman_failed(gearRet))
  53.     {
  54.         cout << "ERROR: " << gearman_worker_error(gearWorker) << endl;    
  55.         return EXIT_FAILURE;
  56.     }

  57.     cout << "waiting for job ... " << endl;

  58.     while (1)
  59.     {
  60.         gearRet = gearman_worker_work(gearWorker);
  61.         if (gearman_failed(gearRet))
  62.         {
  63.             cout << "ERROR: " << gearman_worker_error(gearWorker) << endl;
  64.             break;
  65.         }
  66.     }

  67.     delete gearContext;
  68.     gearman_worker_free(gearWorker);

  69.     return EXIT_SUCCESS;

  70. }

  71. static void *test_function(gearman_job_st *gearJob, 
  72.     void *context, 
  73.     size_t *resultSize,
  74.     gearman_return_t *gearRet)
  75. {
  76.     cout << "\n\njob :" << gearman_job_handle(gearJob) << endl;
  77.     cout << "context :" << (char*)context << endl;

  78.     char *jobWorkload = (char*)gearman_job_workload(gearJob);
  79.     size_t jobWorkloadSize = gearman_job_workload_size(gearJob);


  80.     char *jobRequest = new char[1024];
  81.     jobRequest = (char*)malloc(1024);
  82.     if (jobRequest == NULL)
  83.     {
  84.         cout << "new jobRequest failed" << errno << endl;
  85.         *gearRet = GEARMAN_WORK_FAIL;
  86.         return NULL;
  87.     }

  88.     snprintf((char*)jobRequest, jobWorkloadSize+1, (char*)jobWorkload);
  89.     cout<<"job = "<< gearman_job_handle(gearJob) << " jobWorkloadSize=" << jobWorkloadSize << " jobRequest=" <<jobRequest << endl;

  90.     char *jobResult = new char[1024];
  91.     if (jobResult == NULL)
  92.     {
  93.         cout <<"new jobResult failed" << errno << endl;
  94.         *gearRet = GEARMAN_WORK_FAIL;
  95.         return NULL;
  96.     }


  97.     sprintf((char*)jobResult, "%s->jobResult", (char*)jobRequest);
  98.     size_t jobResultSize = strlen((char*)jobResult);
  99.     cout <<"job = "<< gearman_job_handle(gearJob) << " jobResultSize=" << jobResultSize << " jobResult=" << jobResult << endl;


  100.     delete []jobResult;
  101.     delete []jobRequest;

  102.     *gearRet = GEARMAN_SUCCESS;
  103.     return NULL;
  104. }
GearMAN讲解及所带来的变革 GearMAN讲解及所带来的变革 全面介绍Gearman原理、应用 立即下载

相关推荐

Gearman C# API和示例

Gearman 的C#开发API和一个简单自带demo,vs2008.

Gearman的安装和使用

首发于 樊浩柏科学院 Gearman 是一个分布式任务分发系统,通过程序调用(API,跨语言)分布式地把工作委派给更适合做某项工作的机器,且这些机器可以以并发的、负载均衡的形式来共同完成某项工作。当计算密集型场景时,适合在后台使用 Gearman 异步地运行工作任务。 认识Gearman Gearman 只是一个分布式程序调用框架,其...

weixin_33874713的博客 1289

clock-gating整理

文章目录clock gating 理解1、latch双稳态器件常见锁存器结构SR锁存器D锁存器2、clock gating(clock low-active) latch + AND gating 电路(clock high-active)latch + OR gating 电路 clock gating 理解 1、latch 参考:https://www.cnblogs.com/IClearner/p/6443539.html 双稳态器件 稳定状态为0或1两种 举例:交叉耦合反相器 假设初始Q为1,则可

d_b_的博客 1万+

gearman入门简介

一、Gearman介绍 gearman,从名字上看叫做“齿轮工”,就是通过齿轮把不同的组件组合在一起。 通常,多语言多系统之间的集成是项目开发中一个比较头疼的问题。 一般会采用RPC风格或者是REST风格的WebService。但是总感觉比较麻烦。 gearman就应运而生了,作为一个任务分发架构, 它能够轻松的将前端的任务通过Job Server分发给后端的Worker处理。 G

北雨南萍 1349

步进电机选型避雷手册:为什么你的42HS电机总丢步?从相数、电流到散热全面拆解

本文深入剖析了42HS步进电机在高速或重载下易出现丢步问题的根本原因。文章指出,选型时不应仅关注静态保持转矩,而需重点分析动态矩频曲线、合理匹配驱动器电流与细分数、进行准确的机械传动惯量计算,并有效管理系统共振与散热。通过全面拆解这些关键因素,为工程师提供了实用的选型避雷指南与系统优化方案。

weixin_29275257的博客 97

打造会自主学习的 AI 助手:OpenClaw 记忆系统完全指南

这不是科幻,这是我正在使用的系统。我的 AI 助手「小琳」已经运行了一段时间,积累了大量的知识和经验,而且还在不断学习成长。心跳(Heartbeat)是 OpenClaw 的定时轮询机制,可以让 AI 主动做一些事情。你有没有遇到过这样的困扰:每次和 AI 对话,它都像失忆了一样,之前聊过的内容完全不记得?设置定时任务:每天早上 8 点,查询天气和热点新闻,通过钉钉推送给我。让你的 AI 助手拥有持久记忆,能够自主学习、总结经验、不断成长。这不仅仅是一个「能记住事情的 AI」,而是一个。

Honmaple的博客 1633

gearman使用心得

本质上,gearman可以认为是一个分布式任务队列,client是生产者,worker则是消费者。gearman并不主动分发任务,而是由worker到它那里去取任务执行,所以它采用的是类似kafka的pull消费模式。

tlxamulet的博客 587

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。还原数据库时把序列取消勾选,选择不还原序列。因为还原表的同时,会自动将自增序列还原上去,此处勾选会导致数据库重复创建序列。点击还原数据库完毕后,可以看到序列仅有一个,没有出现重复序列。但此时的序列当前值是从1开始的,需要重置。点击菜单“其它”-》“序列”,可以看到有多个重复序列。

奋斗鱼 1043

Gearman介绍、原理分析、实践改进

gearman是什么? 它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。PHP的Client API与Worker API实现为C扩展,在PHP官方网站有此扩展的中英文文档。 gearman架构中的...

dianfu2892的博客 442

手把手教你学Simulink--基础电机控制场景实例:基于Simulink的无刷直流电机六步换相仿真

摘要:本文详细介绍了基于Simulink的无刷直流电机(BLDC)六步换相仿真方法。文章首先阐述了BLDC六步换相控制的原理,包括霍尔传感器定位、六步换相逻辑和方波电流驱动三大支柱。然后通过电动工具(角磨机)应用场景,展示了如何在Simulink中搭建完整的六步换相系统:从主电路构建、霍尔信号生成、Stateflow换相逻辑实现到开环电压控制。仿真结果显示该系统具有低成本优势(仅需霍尔传感器),但存在±20%转矩脉动。文章还提供了核心代码实现,包括霍尔信号生成、六步换相状态机和转矩分析脚本,并对比了六步换相

MHD0815的博客 149

图神经网络与大模型融合的理论综述:架构、机制与未来方向

然而,它们普遍缺乏对图结构数据的原生支持,无法直接处理边、节点之间的拓扑关系,这限制了其在关系密集型任务中的表现 [23]。2020年发布的BERT [16] 开启了自监督预训练时代,而2021年后,T5 [17]、PaLM [18]、LLaMA [19] 等模型相继推出,参数规模突破千亿级,展现出惊人的上下文学习(In-context Learning)与链式推理(Chain-of-Thought)能力 [20]。例如,将医学影像作为图节点,结合病理报告文本,实现更精准的疾病诊断 [58]。

andeyeluguo的博客 295

Gearman介绍、调研、测试与原理分析

gearman是什么? 它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。PHP的Client API与Worker API实现为C扩展,在PHP官方网站有此扩展的中英文文档。 gearman架构中的三

大鹏 3212

Java:PriorityQueue详解——从零基础到应用

看了网上的详解,我反是一篇没看懂,都是什么垃圾玩意也发出来,无语,我自己根据这两天的学习总结出来了下面这些干货,我就是这么学会的,大家要是零基础看肯定木问题。

流楚丶格念的博客 6142

gearmand与Docker集成:简化分布式任务队列部署的完整教程

gearmand是一款高效的分布式任务队列系统,能够帮助开发者轻松构建异步处理架构。通过Docker集成,你可以在几分钟内完成gearmand服务的部署与配置,无需担心复杂的环境依赖问题。本教程将带你一步步实现gearmand与Docker的无缝集成,从基础部署到高级配置,让分布式任务处理变得前所未有的简单。 ## 📦 为什么选择Docker部署gearmand? Docker容器化技术为g

gitblog_00995的博客 1054

基于matlab的图像HOG特征提取算法仿真

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 730

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

如何在3分钟内使用Docker部署gearmand分布式任务队列系统

gearmand是一个强大的分布式任务队列系统,为现代应用提供了高效的任务分发和处理框架。通过Docker容器化技术,我们可以将复杂的分布式任务队列部署简化为几分钟的操作,同时确保环境一致性和系统可靠性。本文将深入探讨如何利用Docker快速部署gearmand,并展示其在微服务架构中的实际应用价值。 ## 📊 为什么选择gearmand作为分布式任务队列解决方案 在当今的微服务架构中,异步

gitblog_00209的博客 965

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C++ error: ISO C++ forbids declaration of with no type

https://www.allegro.cc/forums/thread/594307 It is important to understand what the problem here is. The actual problem is this. game.h includes player.h, and player.h includes game.h. So, when the com...

lzxjxsy的博客 1685

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

分布式框架-Gearman

特点Gearman是一个分布式应用程序框架,支持同步、异步任务处理,负载均衡以及跨语言调用。通过Gearman,在WEB应用中可以将复杂的业务逻辑交给其它更适合的机器或进程,甚至不同的语言处理。Gearman是分布式计算的神经中枢,它具有以下特性:1.开源免费。Gearman有一个很活跃的开源社区,提供了比较丰富的资源。2.多语言支持。Gearman提供了多语言接口支持,可以...

weixin_33979203的博客 162

Gearman-任务分发系统

简介 Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。 Gearman提供了一个通用的应用程序,可以工作在更加适合处理这项任务的其他计算机或其他处理器上。它允许并行处理,载入平衡处理,而且可以在不同语言间进行调用。它可以应用于各种各样的应用场合。 Gearman最初用于LiveJournal的图片resize功能,由于图片

zl 2710

gearman_在多个环境中部署Gearman

现代计算环境的最大挑战之一是计算资源的分配和有效利用。 当前的总体计算趋势是,您可以廉价,轻松地安装功能强大的计算机来执行相对简单明了的任务,但是您可能无法获得最佳的计算机整体性能或使用率。 相反,现在许多应用程序需要执行相对较小的操作,但可能需要执行数百或数千次,而无需(或无法使用)单台机器的功能。 随着计算场规模的增加,有时需要跨所有这些计算机同时或选择性地执行操作或操作以执行管理或安...

cuxiong8996的博客 351

Gearman框架的研究(一)

以下内容来自www.geraman.org 1.Gearman介绍 Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,Gearman的提供了一个通用框架,它可以让你做的工作并行,负载平衡处理,并调用函数语言之间。它可用于在各种各...

prettyzhou的专栏 227

MySQL+Redis缓存+Gearman共同构建数据库缓存

利用MySQL的UDF函数配置Redis的缓存节点进行对于数据库的缓存优化方案

b_______的博客 815

Gearman 项目使用与配置指南

Gearman 项目使用与配置指南 1. 项目目录结构及介绍 Gearman 项目是一个用于分布式任务队列的框架,其目录结构如下: benchmark/: 包含性能测试相关的代码和脚本。 bin/: 存放了一些可执行的脚本和工具。 contrib/: 一些贡献的代码,包括补丁和插件。 docs/: 项目文档,包括API文档和使用说明。 examples/: 包含了一些使用Gearman的示例代码...

gitblog_01022的博客 512

gearman 入门使用笔记

一、简介gearman是可以把工作委派到其它机器或进程的工具。 官网地址:http://gearman.org/Gearman通常由三部分组成,client+worker+任务服务器,由worker执行client发来的job,再通过job server返回给client。Gearman提供了Client、Worker的API,利用这些API来与job server通讯。 这是工作原理图: 二

猿来这样-谢厂节的博客 1万+

gearman的安装与使用示例

一, gearman的安装 1.1. gearman工作原理 Gearman 服务有很多要素使得它不仅仅是一种提交和共享工作的方式, 但是主要的系统只由三个组件组成:      gearmand 守护进程(server),     用于向 Gearman 服务提交请求的 client ,     执行实际工作的 worker。 其关系如下图所示:  Fig 1. gearm

北雨南萍 1884
上一篇: Gearman的源码编译与安装
下一篇: ffmpeg的avcodec_open或avcodec_open2()的线程安全问题
北雨南萍
北雨南萍 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 2665粉丝 453原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北雨南萍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值