使用MySQL UDFs来调用gearman分布式任务分发系统

使用MySQL UDFs来调用gearman分布式任务分发系统

当向表插入数据的时候,触发执行某些任务 安装gearman参加:
http://www.ttlsa.com/html/663.html 一.安装gearman-mysql-udf # apt-get install libmysql++-dev # wget
https://launchpad.net/gearman-mysql-udf/trunk/0.6/+download/gearman-mysql-udf-0.6.tar.gz # tar zxvf gearman-mysql-udf-0.6.tar.gz # ./configure  –with-mysql=/usr/bin/mysql_config –libdir=/usr/lib/mysql/plugin # make # make install # mysql [codesyntax lang=”sql”] mysql> CREATE FUNCTION gman_do RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_do_high RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_do_low RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_do_background RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_do_high_background RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_do_low_background RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> CREATE AGGREGATE FUNCTION gman_sum RETURNS INTEGER SONAME “libgearman_mysql_udf.so”; mysql> CREATE FUNCTION gman_servers_set RETURNS STRING SONAME “libgearman_mysql_udf.so”; mysql> SELECT gman_servers_set(“192.168.1.60:4730,192.168.1.60:4731″) as gman_servers;  //设置gearman server +————————————-+ | gman_servers                        | +————————————-+ | 192.168.1.60:4730,192.168.1.60:4731 | +————————————-+ mysql> create table udf_test( -> id int unsigned auto_increment primary key, -> val varchar(20) not null);  //新建表 mysql> create trigger sendmail before insert on udf_test for each row set @return=gman_do_background(‘MAIL’,’undef’);  //创建触发器,当向表udf_test插入数据时候,执行任务。 [/codesyntax] # perl -MCPAN -e shell cpan> install Gearman::Worker  //安装Gearman::Worker模块 cpan> install Mail::SendEasy   //安装Mail::SendEasy模块 # vi WORKER_SENDMAIL.pl   //创建worker任务 [codesyntax lang=”perl”] use strict; use Mail::SendEasy ; use v5.10; use Gearman::Worker; my $worker=new Gearman::Worker; $worker->job_servers(‘192.168.1.60:4730’); $worker->register_function(MAIL=>\&sendmail); $worker->work while 1; sub sendmail{ my $job=shift; my $date=localtime; my $mail = new Mail::SendEasy( smtp => ‘smtp.ttlsa.com’ , user =>
‘service@ttlsa.com’ , pass => ‘******’, ); print “$date\n”; my $status = $mail->send( from    =>
‘service@ttlsa.com’ , from_title => ‘ttlsa’ , to      =>
‘xxxxx@qq.com’ , subject => “MAIL Test $date” , msg     => “$date” , html    => “<b>test $date</b>” , ); if (!$status) { print $mail->error ;} } [/codesyntax] # perl WORKER_SENDMAIL.pl & # perl WORKER_SENDMAIL.pl &  //在后台运行两个worker 二.测试 1.向udf_test表插入数据 mysql> insert into udf_test value (”,’a’); 2.查看是否收到邮件
使用MySQL UDFs来调用gearman分布式任务分发系统 三.Gearman server信息 # telnet 192.168.1.60 4730 Trying 192.168.1.60… Connected to 192.168.1.60. Escape character is ‘^]’. status MAIL    0       0       2 说明:第一列worker名称;第二列jobs执行数量;第三列jobs队列数量;第四列可用worker数量

转载于:https://my.oschina.net/766/blog/211040

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100870.html原文链接:https://javaforall.net

(0)
上一篇 2021年7月8日 下午4:00
下一篇 2021年7月8日 下午5:00


相关推荐

  • 大数据智能运维平台方案-1

    大数据智能运维平台方案-11 1 功能详细介绍 1 1 1 登录界面用户首先需要获取 license 激活产品后才能正常使用 提示如下 点击激活 会自动生成机器码 请联系厂商获取激活码激活后 会提示到期日 产品可以正常进行登录了 1 1 2 首页首页是向导页 以路线图的方式引导你进行集群配置和集群监控 1 2 配置管理 1 2 1 全局配置用于配置全局参数和服务 包括数据保留配置 告警服务 告警配置和数据库配置等修改全局参数 1 2 2 数据库配置用于配置关系型数据库 支持 Mysql 和 PostgreSQL 等

    2026年3月16日
    2
  • 《JavaScript 模式》读书笔记(4)— 函数2

    这篇,我们仍旧继续学习函数。二、回调模式函数都是对象,这表示它们可以作为参数传递给其它函数。functionwriteCode(callback){//执行一些事务…callbac

    2022年3月25日
    45
  • Vue指令v-for之遍历输出JavaScript数组,json对象的几种方式

    Vue指令v-for之遍历输出JavaScript数组,json对象的几种方式定义数据 lt script gt newVue el test data message infor list a b c d e web

    2026年3月26日
    2
  • 【违禁文】周末两天逛了逛长沙的思考和感悟

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!今天不写技术文章了,写一下自己上周末出去逛的体验和感想,本来准备昨天写的,昨天晚上去学习了一个线上的交流活动,搞的时间有点晚,所以周末总结放今天在写一写,因为不写的话,我可能后面也就不会写了,纯粹个人所见所想!人生其实有很多未知,就如我从自己毕业到工作后都没曾想过我会在长沙生活,但是现在已经快两年了,时间过的很快!…

    2022年3月1日
    42
  • 光棍节程序员闯关秀第1关(总共10关)

    光棍节程序员闯关秀第1关(总共10关)[我的博客](http://antiless.com/) 无意中看到http://segmentfault.com/game/,感觉挺有意思,记录一下闯关历程 第一关 提示: 从所有信息中找到进入下一关的方法 这一关很简单,即使没有任何web知识也能轻松通过。只要你懂得晃鼠标~~查看源代码会发现有这么一行:&lt;p&gt;&lt;astyle="color…

    2022年7月17日
    24
  • MyBatis快速入门第八讲——MyBatis逆向工程自动生成代码

    MyBatis快速入门第八讲——MyBatis逆向工程自动生成代码MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码什么是逆向工程MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。使用逆向工程

    2022年6月19日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号