gearman分散タスク分配システムを呼び出すためにMySQLのUDFを使用します

参加gearmanをインストールするには、特定のタスクの実行をトリガー、テーブルにデータを挿入する場合: http://www.ttlsa.com/html/663.html 。取り付けgearman-mysqlの-UDF#をAPT- -のDEV#wgetのlibmysql ++をインストール取得 https://launchpad.net/gearman-mysql-udf/trunk/0.6/+download/gearman-mysql-udf-0.6.tar.gz #タールzxvf gearman-mysqlの-UDF-0.6.tar.gz#に./configure --with-mysqlの=は/ usr / binに/ mysql_configを--libdir =は/ usr / libに/ mysqlの/プラグイン#が#は#のMySQLをインストールします作ります[ codesyntax LANG = "SQL"] MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do FUNCTIONを作成します。MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do_high FUNCTIONを作成します。MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do_low FUNCTIONを作成します。MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do_background FUNCTIONを作成します。MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do_high_background FUNCTIONを作成します。MySQLの> STRINGのSONAME "libgearman_mysql_udf.so" を返しgman_do_low_background FUNCTIONを作成します。MySQLの> 集計関数gman_sumを作成しINTEGER SONAME "libgearman_mysql_udf.so" を返し、MySQLの>文字列SONAME "libgearman_mysql_udf.so" を返すgman_servers_set機能CREATE; gman_serversとしてMySQL> SELECT gman_servers_set( "192.168.1.60:4730,192.168.1.60:4731"); / /設定gearmanサーバー+ ------------------------------------- + | gman_servers | + --- ---------------------------------- + | 192.168.1.60:4730,192.168.1.60:4731 | + - >のid int型符号なしAUTO_INCREMENTプライマリ - ------------------------------------ + MySQLの>(udf_testテーブルを作成しますキー、 - >ヴァルVARCHAR(20)NOT NULL); //テーブルのMySQLを作成>各行セット@リターン= gman_do_background( 'MAIL'、 'undefを')のためのudf_testに挿入する前に、sendmailをトリガーを作成し; //トリガを作成し、時間udf_testテーブルにデータを挿入するときに、タスクを実行します。【/ Codesyntax]#のperl -MCPAN -eシェルCPAN> Gearmanをインストール::ワーカー//安装Gearman ::ワーカー模块CPAN>メールをインストール:: SendEasy //安装メール:: SendEasy模块#viのWORKER_SENDMAIL.pl //创建労働者任务[LANG codesyntax = "perlは"]厳格な使用します。Mailを使用:: SendEasyを。V5.10を使用します。Gearman ::労働者を使用します。私の$ワーカー=新しいGearman ::労働者。$ worker-> job_servers( '192.168.1.60:4730'); $ worker-> register_function(MAIL => \&sendmailの); $ worker-> 1ながら動作します。サブsendmailの{私の$ジョブ=シフト; 私の$日付= localtimeの。私の$メール=新しいメール:: SendEasy(SMTP => 'smtp.ttlsa.com'、ユーザー=> 4730' ); $ worker-> register_function(MAIL => \&sendmailの); $ worker-> 1ながら動作します。サブsendmailの{私の$ジョブ=シフト; 私の$日付= localtimeの。私の$メール=新しいメール:: SendEasy(SMTP => 'smtp.ttlsa.com'、ユーザー=> 4730' ); $ worker-> register_function(MAIL => \&sendmailの); $ worker-> 1ながら動作します。サブsendmailの{私の$ジョブ=シフト; 私の$日付= localtimeの。私の$メール=新しいメール:: SendEasy(SMTP => 'smtp.ttlsa.com'、ユーザー=> '[email protected]' 合格=> '******'、);印刷"$日付の\ N-";私のステータス= $ $ mail->は(送信から=> '[email protected]' =>に、from_title => 'ttlsa'、 '[email protected]' 、件名=> "$のDATE MAILテスト"、MSG => "$のDATE"、HTML =>「<B>テストDATEの$ </ B >」);($場合 、ステータス){印刷$ mail->エラー;}!} [/ codesyntax]#perlのWORKER_SENDMAIL.pl&#perlのWORKER_SENDMAIL.pl&// 背景テストで二つの実験2つのワーカー。 MySQLのテーブルにudf_test挿入データを> udf_test値(「」に挿入 、「A」); 2. メッセージが受信されたかどうかを確認するために 接続され... 192.168.1.60を試す3 .Gearmanサーバ情報#1のtelnet 192.168.1.60 4730を 192.168.1.60に。エスケープ文字は'^]'です 。ステータスMAIL 0 0 2注:最初の列作業者名、ジョブの数が行われる第2列、第3列のジョブキューの数、第4列利用可能なワーカーの数

ます。https://my.oschina.net/766/blog/211040で再現

おすすめ

転載: blog.csdn.net/weixin_34015566/article/details/91546861