使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HttpClient4.x 使用cookie保持会话

    HttpClient4.x 使用cookie保持会话HttpClient4.x可以自带维持会话功能,只要使用同一个HttpClient且未关闭连接,则可以使用相同会话来访问其他要求登录验证的服务(见TestLogin()方法中的“执行get请求”部分)。如果需要使用HttpClient池,并且想要做到一次登录的会话供多个HttpClient连接使用,就需要自己保存会话信息。因为客户端的会话信息是保存在cookie中的(JSESSIONID),所

    2022年7月22日
    9
  • linux安装mysql8.0.16_mysql安装配置教程

    linux安装mysql8.0.16_mysql安装配置教程1.在/use/local下创建mysql文件夹mkdirmysql2.切换到mysql文件夹下cdmysql3.下载mysqlwgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz也可以直接在官方下载最新版本https://dev.mysql.com/downloads/mysql/选择linux4.解压mysqltar-zx……..

    2022年10月13日
    0
  • PLC的基本知识_网络基础知识培训

    PLC的基本知识_网络基础知识培训本人接触的比较多的PLC为三菱和欧姆龙,故主要以三菱PLC为例开始记录。在学习PLC之前,首先要明白PLC的优缺点,即为什么要用PLC,直接用PC服务器或者单片机嵌入式不行吗?PLC有五个特点:(1)可靠性高、抗干扰能力强;(2)灵活性好、扩展性能强;(3)控制速度快、稳定性强;(4)延时调整方便,精度高;(5)系统设计安装块、维修方便。其实最重要的就两个字,稳定。像单片机这种负荷一高就烧板子,在电磁干扰强的地方也无法正常工作。PC服务器更是无法胜任多种IO输出,控制现场…

    2022年9月3日
    1
  • MyCat读写分离

    MyCat读写分离

    2021年7月10日
    99
  • Map集合的遍历[通俗易懂]

    Map集合的遍历[通俗易懂]COPY/***Map接口的使用*特点:1.存储键值对2.键不能重复,值可以重复3.无序*/publicclassDemo1{ publicstaticvoidmain(String[]args){ Map<String,Integer>map=newHashMap<String,Integer>(); //1.添加元素 map.put(“tang”,21); map.put(“he”,22); map.put(“

    2022年5月7日
    38
  • c++利用mutex(互斥量)实现多线程「建议收藏」

    c++利用mutex(互斥量)实现多线程「建议收藏」C++使用内核对象互斥体(Mutex)实现线程同步锁,当两个线程共同访问一个共享资源时,Mutex可以只向一个线程授予访问权。下面的例子模拟了售票系统,定义了两个售票线程///ConsoleApplication1.cpp:定义控制台应用程序的入口点。////mutex#include”stdafx.h”#include<stdio.h>#include<windows.h>#include<process.h>void__cdecl.

    2022年6月26日
    25

发表回复

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

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