Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用HTTP方式调用Gearman任务处理

用HTTP方式调用Gearman任务处理

作者头像
星哥玩云
发布于 2022-07-01 09:11:33
发布于 2022-07-01 09:11:33
2960
举报
文章被收录于专栏:开源部署开源部署

原文:

This protocol plugin allows you to map HTTP requests to Gearman jobs. It only provides client job submission currently, but it may be extended to support other request types in the future. The plugin can handle both GET and POST data, the latter being used to send a workload to the job server. The URL being requested is translated into the function being called. For example, the request: POST /reverse HTTP/1.1 Content-Length: 12

Hello world! Is translated into a job submission request for the function “reverse” and workload “Hello world!”. This will respond with: HTTP/1.0 200 OK X-Gearman-Job-Handle: H:lap:4 Content-Length: 12 Server: Gearman/0.8

!dlrow olleH The following headers can be passed to change the behavior of the job: * X-Gearman-Unique: <unique key> * X-Gearman-Background: true * X-Gearman-Priority: <high|low> For example, to run a low priority background job, the following request can be sent: POST /reverse HTTP/1.1 Content-Length: 12 X-Gearman-Background: true X-Gearman-Priority: low

Hello world! The response for this request will not have any data associated with it since it was a background job: HTTP/1.0 200 OK X-Gearman-Job-Handle: H:lap:6 Content-Length: 0 Server: Gearman/0.8 The HTTP protocol should be considered experimental.

应用场景: 开启gearman http监听功能,让前端以web api方式调用gearman job

起用方式: 在gearmand的起动参数中加上: /usr/local/gearman/sbin/gearmand        \  -l /usr/local/gearman/log/trace.log    \  --verbose INFO -p 4730 -u root -d -t 4  \  --http-port=8080                        \  -r http

--http-port=8080 指定监听端口号 -r http 起用http协议模块

调用方式: 目前http协议只支持任务提交类接口,其它类型的暂不支持。 按官方文档上说,http支持GET和POS两种方式调用,但是GET方式我还没弄清楚怎样携带数据,POST方式实验过是可以的 http://172.16.18.116:8080/reverse reverse就为函数名,假如POST的数据内容为:“Hello world!”,返回结果为:“!dlrow olleH”

在http的header头中可以设置一些任务参数: * X-Gearman-Unique: <unique key>  * X-Gearman-Background: true  * X-Gearman-Priority: <high|low>

这种使用方式,实际上gearmand监听着两个端,原来的4730端还是可以接收正常的gearman协议客户端的请求,另外的8080端口则监听着http协议的请求,两种方式共同工作,http服务前端如移动端调用,gearman服务内部的其它模块的调用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分布式计算框架Gearman原理详解
Gearman提供了一个通用的应用程序框架,用于将工作转移到更适合于工作的其他机器或流程。它允许你并行工作,负载平衡处理,并在语言间调用函数。它可用于从高可用性网站到传输数据库复制事件的各种应用程序。换句话说,它是分布式处理交流的神经系统。关于Gearman的一些优点:
sunsky
2020/08/20
8530
分布式计算框架Gearman原理详解
Gearman介绍、原理分析、实践改进
它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。PHP的Client API与Worker API实现为C扩展,在PHP官方网站有此扩展的中英文文档。
sunsky
2020/08/20
1.1K0
Gearman介绍、原理分析、实践改进
分布式任务系统gearman的python实战
Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,开源、多语言支持、灵活、快速、可嵌入、可扩展、无消息大小限制、可容错,与Hadoop相比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资 源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。
sunsky
2020/08/20
8650
使用Gearman做分布式计算
通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类PHP
Java架构师必看
2020/07/21
5800
JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)
无论MySQL还是Redis,自身都带有数据同步的机制,像比较常用的 MySQL的Master/Slave模式 ,就是由Slave端分析Master的binlog来实现的,这样的数据复制其实还是一个异步过程,只不过当服务器都在同一内网时,异步的延迟几乎可以忽略。
BUG弄潮儿
2022/06/30
1.5K0
JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)
PhalApi+Gearman,接口MQ异步队列任务的完整开发教程
在API接口同步请求过程中,不适合处理耗时过长、或者一直轮询的工作。此时,可以结合MQ异步队列任务进行后台处理。
dogstar
2022/10/19
4900
Gearman的问题分析与深入研究
Gearman作为一个优秀的分布式解决方案,已经被众多的公司或者团队所采用,我在之前的一篇文章中也有过介绍。但是目前对于woker的执行状态和结果监控,特别是放入后台的worker的监控,官方还没有完善的解决方法。最近,为团队内部做了一次分享,我也得以深入的研究了 Gearmand。
大江小浪
2018/07/25
9070
Gearman的问题分析与深入研究
Gearman使用范例
Gearman使用范例 Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。 工程依赖配置 <dependencies> <dependency> <groupId>org.gearman.jgs</gro
jeremyxu
2018/05/10
1.2K0
Go HTTP 调用
无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 HTTP 调用,本文将会介绍在 Go 语言里,如何进行 HTTP 调用,并举例说明。
陈明勇
2023/10/15
3380
Go HTTP 调用
Go实战 | 实现http请求排队处理
在高并发场景下,为了降低系统压力,有时候会使用一种让请求排队处理的机制。本文就介绍在Go中是如何实现的。
Go学堂
2023/01/31
1.1K0
构造http请求的几种方式(附源码)
从前端角度, 除了浏览器地址栏能构造 GET 请求, form 表单能构造 GET 和 POST 之外, 还可以通过 ajax的方式来构造 HTTP 请求. 并且功能更强大.
VIBE
2023/02/13
8660
构造http请求的几种方式(附源码)
Gin 11
使用 model binding 来将请求中的数据绑定到一个 model 中,形成一个结构体,Gin 目前支持绑定 JSON XML 和标准的表单数据 (foo=bar&boo=baz)
franket
2021/08/10
4780
Golang 语言怎么使用 net/http 标准库开发 http 应用?
在 Golang 语言中,可以使用 net/http 实现 http server,可以通过调用 ListenAndServe 函数,传入给定参数,地址和处理器 (handler)。处理器参数为 nil 时,默认使用 DefaultServeMux。
frank.
2021/06/22
1.2K0
C#的HTTP 客户端和服务
在网络编程中,HTTP(超文本传输协议)是应用最为广泛的协议之一。C#提供了强大的类库来支持HTTP通信,包括HttpClient用于客户端请求,以及HttpListener用于服务端监听。本文将详细介绍如何在C#中使用这些工具进行HTTP通信。
Michel_Rolle
2024/10/09
2.8K0
HTTP
stringstream流式分隔符:stringstream - C++ Reference (cplusplus.com)
ljw695
2025/01/03
970
HTTP
你所不了解的 Traefik
在之前的文章中,我们简单介绍了关于 Traefik 的相关概念及组件原理机制,具体可参考:为什么选择 Traefik Ingress ?
Luga Lee
2021/11/18
9951
你所不了解的 Traefik
Go HTTP
在网络编程里多数情况下,我们都在处理HTTP请求,关于请求协议的部分我推荐阅读《TCP协议》这本书,绝对值得购买。Go语言也提供了一个标准库包net/http,让开发者可以快速的处理HTTP请求,其封装的易用性,足够简单。并且,整个net包里提供了多种多样的处理模块,比如rpc等等。http包提供了HTTP客户端和服务端的实现,这让我想到了Node.js提供的http模块。
icepy
2019/06/24
1.5K0
Go HTTP
gRPC 安全篇-3: 快速实现 CSRF 验证
rk-boot 默认会为 gRPC 服务开启 grpc-gateway,两个协议监听同一个端口。
尹东勋
2021/12/20
9410
gRPC 安全篇-3: 快速实现 CSRF 验证
从 http协议角度解析okhttp
OkHttp 是 Square 公司开源的一款网络框架,封装了一个高性能的 http 请求库。
开发者
2019/12/26
1K0
从 http协议角度解析okhttp
深入学习用Go编写HTTP服务器
Go是一门通用的编程语言,想要学习 Go 语言的 Web 开发,就必须知道如何用 Go 启动一个 HTTP 服务器用于接收和响应来自客户端的 HTTP 请求。用 Go实现一个http server非常容易,Go 语言标准库net/http自带了一系列结构和方法来帮助开发者简化 HTTP 服务开发的相关流程。因此,我们不需要依赖任何第三方组件就能构建并启动一个高并发的 HTTP 服务器。这篇文章会学习如何用net/http自己编写实现一个HTTP Serverk并探究其实现原理,以此来学习了解网络编程的常见范式以及设计思路。
KevinYan
2020/02/17
2.5K0
深入学习用Go编写HTTP服务器
相关推荐
分布式计算框架Gearman原理详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档