beanstalkd基础使用(C/C++语言)
来源:互联网 发布:小米手机查看网络制式 编辑:程序博客网 时间:2024/06/02 02:59
保证Linux下已有beanstalkd环境,在beanstalkd目录下./beanstalkd -F运行程序
1.在https://github.com/deepfryed/beanstalk-client下载相关的客户端程序
下载后解压,在解压后的目录下进行安装
sudo make install
在/etc/ld.so.conf目录下添加解压后的目录,如:/home/beanstalk-client-master
2.进入目录下的examples目录,里面有C和C++两个文件夹,可以自己选择语言运行
在C目录下输入
gcc example1.c -o example -lbeanstalk./example
example1.c程序解释如下:
#include "beanstalk.h"#include <stdio.h>#include <assert.h>#include <inttypes.h>int main() { BSJ *job; char *yaml; int64_t id; int a,b,c; bs_version(&a, &b, &c); printf("beanstalk-client version %d.%d.%d\n", a,b,c); int socket = bs_connect("127.0.0.1", 11300);//初始化socket assert(socket != BS_STATUS_FAIL); //检查socket是否正常初始化 assert(bs_use(socket, "test") == BS_STATUS_OK);//生产者选择管道 assert(bs_watch(socket, "test") == BS_STATUS_OK);//消费者选择管道 assert(bs_ignore(socket, "default") == BS_STATUS_OK);//使用ignore命令来删除除了default的任意管道 id = bs_put(socket, 0, 0, 60, "hello world", 11);//生产者put消息到管道内,第一个0是优先级设置,第二个0是延迟时间,60是限制时间,11是发送消息byte数 assert(id > 0); printf("put job id: %"PRId64"\n", id); assert(bs_reserve_with_timeout(socket, 2, &job) == BS_STATUS_OK);//消费者选择管道获取待执行的任务,命令阻塞,时间限制为2秒 assert(job); printf("reserve job id: %"PRId64" size: %lu\n", job->id, job->size); write(fileno(stderr), job->data, job->size); write(fileno(stderr), "\r\n", 2); printf("release job id: %"PRId64"\n", job->id); assert(bs_release(socket, job->id, 0, 0) == BS_STATUS_OK);//提前释放一个delay的job到Ready队列 bs_free_job(job); assert(bs_peek_ready(socket, &job) == BS_STATUS_OK);//查找并切换当前tube最先进入准备状态的job) printf("peek job id: %"PRId64"\n", job->id); printf("delete job id: %"PRId64"\n", job->id); assert(bs_delete(socket, job->id) == BS_STATUS_OK);//删除任务 bs_free_job(job); assert(bs_list_tubes(socket, &yaml) == BS_STATUS_OK);//获取当前管道信息 printf("tubes:\n%s\n", yaml); free(yaml); assert(bs_list_tubes_watched(socket, &yaml) == BS_STATUS_OK);//获取消费的管道 printf("tubes-watched:\n%s\n", yaml); free(yaml); assert(bs_list_tube_used(socket, &yaml) == BS_STATUS_OK);//获取使用的管道 printf("tube-used: %s\n", yaml); free(yaml); assert(bs_stats(socket, &yaml) == BS_STATUS_OK);//获取当前的状态信息 printf("stats:\n%s\n", yaml); free(yaml); bs_disconnect(socket); exit(0);}
输出
beanstalk-client version 1.3.0put job id: 4reserve job id: 4 size: 11hello worldrelease job id: 4peek job id: 4delete job id: 4tubes:---- default- testtubes-watched:---- testtube-used: teststats:---current-jobs-urgent: 0current-jobs-ready: 0current-jobs-reserved: 0current-jobs-delayed: 0current-jobs-buried: 0cmd-put: 4cmd-peek: 0cmd-peek-ready: 1cmd-peek-delayed: 0cmd-peek-buried: 0cmd-reserve: 0cmd-reserve-with-timeout: 4cmd-delete: 4cmd-release: 1cmd-use: 4cmd-watch: 4cmd-ignore: 4cmd-bury: 0cmd-kick: 0cmd-touch: 0cmd-stats: 1cmd-stats-job: 0cmd-stats-tube: 0cmd-list-tubes: 1cmd-list-tube-used: 1cmd-list-tubes-watched: 1cmd-pause-tube: 0job-timeouts: 0total-jobs: 4max-job-size: 65535current-tubes: 2current-connections: 1current-producers: 1current-workers: 1current-waiting: 0total-connections: 4pid: 129109version: 1.8rusage-utime: 5.653140rusage-stime: 9.696525uptime: 3916binlog-oldest-index: 0binlog-current-index: 0binlog-records-migrated: 0binlog-records-written: 0binlog-max-size: 10485760
阅读全文
0 0
- beanstalkd基础使用(C/C++语言)
- C语言基础:C语言指针(1) - 基本使用
- c语言基础(081223)
- C语言基础(二)
- C语言基础(三)
- c语言基础(一)
- C语言基础(一)
- C语言基础(二)
- C语言基础(一)
- C语言基础(linux)
- C语言基础(linux)
- C语言基础(一)
- C语言基础(二)
- C语言基础(三)
- C语言基础(一)
- C语言基础(二)
- C 语言基础(一)
- C 语言基础(二)
- python/scipy求解非线性方程(fsolve/root)
- Redis 数据存储位置 导出数据
- spring+springmvc+hibernate+oracle前面挖坑,后面跳坑项
- java.lang.ClassCastException: org.model.Xsb_$$_javassist_0 cannot be cast to...
- Node.js从入门到放弃
- beanstalkd基础使用(C/C++语言)
- C++ 类的多重继承
- Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。其中一种方式
- Android Textview和Edittext文本选中样式修改实战
- Javascript基础入门
- node.js stream
- Git学习-->GitLab如何修改时区?
- <02读书回忆录
- java密码框明文显示密码