タグ

perlに関するkiryuuのブックマーク (100)

  • TheSchwartz / Gearman のワーカープロセス管理WorkerManager - stanaka's blog

    概要 Perlの非同期処理システムとしてTheSchwartz / Gearmanを非常に便利に使っているのですが、いい感じにワーカープロセスを管理したかったので、WorkerManagerなるものを作ってみました。作ったのは実は1年以上前なのですが、ようやくの公開です。 基は、Apacheのpreforkモデルを踏襲しています。特徴は、 子プロセスを複数起動させて、ジョブを並列実行 一定回数のジョブを実行したら、子プロセスを再作成 クラスを定義するのみでジョブを実行 TheSchwartz / Gearmanの切り替えを最低限の変更で実現 ワーカープロセスの安全な停止(プロセス停止の際に、実行中のジョブの終了後に終了) ジョブの実行時のタイムスタンプをジョブ投入からの遅延をログに保存 というあたりです。preforkモデルなので、あまりモダンな設計ではないですが、gdbでのデバッグの容

    TheSchwartz / Gearman のワーカープロセス管理WorkerManager - stanaka's blog
    kiryuu
    kiryuu 2013/06/26
  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp
    kiryuu
    kiryuu 2013/06/26
  • 時間の掛かる処理はTheSchwartzで非同期処理 - (゚∀゚)o彡 sasata299's blog

    2009年03月03日00:32 Perl MySQL 時間の掛かる処理はTheSchwartzで非同期処理 先日の ライブドアテクニカルセミナー でも思ったんですが、重たい処理を行う際に、「一旦キューに溜めておいて非同期で処理する」というのは非常に重要だと思います。レスポンスも早いし。.。゚+.(・∀・)゚+.゚ ということで、、、TheSchwartz というジョブキューサーバを使ってみました(・∀・) TheSchwartz は以下の2つの script で構成されます。 A) queue から job を取ってきて実行する script (worker.pl) B) job を queue に登録する script (client.pl) よく似たものに Gearman があります。違いとしては TheSchwartz ・queue を DB に保存する ・非同期で処理する ・DB

    kiryuu
    kiryuu 2013/06/26
  • Tips (CGI, Perl, Unix and etc.)

    Tips 目次 Tips (CGI&SSI) ブラウザの表示を変化させない CGI スクリプト(Status: 204 No Content) 他の URI (URL) にジャンプする CGI スクリプト(Location フィールド) CGI のタイムアウトおよびブラウザの中断 CGIスクリプト中で重い処理をバックグランド実行 サーバによるタイムアウトを回避 サーバによるタイムアウトを回避&重い処理の保護 SSI における HTML 出力の中断 CGI出力内容のコピーをファイルに出力 CGIによるブラウザでのダウンロード POST のサイズ制限 Content-Encodig による gzip 圧縮 Tips (Perl) flock の使い方 排他制御 実効 UID の切替え perl の setuid スクリプト perl の system、exec、パイプ fork, system

    kiryuu
    kiryuu 2013/06/26
    サーバによるタイムアウトを回避&重い処理の保護
  • quotemeta関数 - 正規表現文字のエスケープ - Perl入門ゼミ

    Perl › 関数 › here quotemeta関数を使用すると、正規表現で利用される文字列を通常の文字として扱うことができます。ワード文字以外のすべての文字の直前に\がつけられます。 # 正規表現文字列を通常の文字として扱う $ret = quotemeta $str; 正規表現文字を含んだ文字列を通常の文字列としてパターンマッチさせるサンプルです。 # 正規表現文字を含んだ文字列を通常の文字列としてパターンマッチ my $message = 'This message contains a{2}'; my $match = "a{2}"; $match = quotemeta $match; if ($message =~ /$match/) { print "Match!\n"; } quotemetaは正規表現の特殊文字である\Qと同じ意味を持ちます。上記のquotemetaは

    quotemeta関数 - 正規表現文字のエスケープ - Perl入門ゼミ
  • File::Find - サブディレクトリを再帰的に処理する - Perl入門ゼミ

    Perl › モジュール › here File::Findを使用すると、再帰的にすべてのファイルを処理することができます。 use File::Find; find(\&process, $top_dir); sub process{ # 行いたい処理 } File::Find は、chdir で、ディレクトリを変更しながら、すべてのファイルを処理していきます。第一引数には、サブルーチンへのリファレンスを渡します。( &process がサブルーチンで、 \ 記号で、リファレンスを作成しています。 ) 第二引数以降は、処理したいディレクトリのリストを渡します。( 例では、ひとつだけ )。find の代わりに、 finddepth を使うと、走査順を、変更できます。( 以下で解説 ) カレントディレクトリを変更したくない場合 カレントディレクトリを変更しないで、走査したい場合は「no_ch

    File::Find - サブディレクトリを再帰的に処理する - Perl入門ゼミ
  • JSON::WebTokenでOpenID ConnectのID Tokenを検証する方法 - r-weblife

    おはようございます、ritouです。 JWTへの注目の高まりを感じる 去年からJWT(JSON Web Token)に注目が集まっています。 http://oauth.jp/json-web-token-jwt 来月のJICS 2013でもJWTに関する基調講演がありますし、2日目のIdentity Technologies IntroductionではMichael B. Jones氏からJWT, JOSEの説明があります。 3月5日(火)基調講演にDeNA山口氏による「MobageオープンプラットフォームにおけるJWT活用」をプログラムに追加しました。 3/5基調講演にDeNA追加 - Japan Identity & Cloud Summit(学認シンポジウム, OpenID Summit) 渋谷のD社方面からJWTのかほりがぷんぷんするなーと思っていたわけですが、ライブラリも作られ

    JSON::WebTokenでOpenID ConnectのID Tokenを検証する方法 - r-weblife
    kiryuu
    kiryuu 2013/03/11
    JWT
  • キーワード抽出モジュール Lingua::JA::Summarize を使うコツ (nakatani @ cybozu labs)

    いわゆる「Web2.0」っぽい要素である「タグ」。 一般にはタグ付けは手動で行うわけですが、自然言語テキストへのタグ付け(キーワード抽出)を自動で行うことができれば、あれこれと可能性が広がって楽しそう……しかし、それは実現が難しかったり高コストだったりして、簡単に手を出せる解はあまりありません。 ラボの奥さんの作成したキーワード抽出モジュール Lingua::JA::Summarize は次の特徴を持っています。 動作要件の敷居が低い 辞書のメンテナンスをしなくても、未知語や熟語もある程度抽出してくれる 希望の結果に近づけるためのチューニングが可能 モジュールを使って、サイボウズ・ラボ内での情報交換を行っている社内掲示板をスレッド単位で解析しているのですが、辞書を一切チューニングしていない状態でも「しょこたん☆ぶろぐ」や「かぶり隊隊員ニャンコ達」などの特徴的なキーワードが抽出されます(

    kiryuu
    kiryuu 2013/01/29
    キーワード抽出
  • http://www.hidekik.com/cookbook/p2h.cgi?id=smtptext

    kiryuu
    kiryuu 2012/12/21
    エンベロップの指定方法 $smtp->mail($from_mail); $smtp->to($to_mail);
  • 最近のCPANモジュールを使ったメール送信 - うまいぼうぶろぐ

    http://perl-users.jp/modules/email_send.html perl-users でEmail::Send 使えばいいよって書いてたので、Email::Sendを使ってたんですが、ふとperldoc Email::Send みてたら Email::Send is going away... (略) As of today, 2008-12-19, Email::Sender is young, but it's fairly well-tested. Please consider using it instead for any new work. と書いてるのでEmail::Sender 使おう。 perldoc Email::Sender::Simple perldoc Email::Sender::Manual perldoc Email::Sende

    最近のCPANモジュールを使ったメール送信 - うまいぼうぶろぐ
    kiryuu
    kiryuu 2012/12/21
    明示的にenvelope-from を指定する場合はハッシュでfrom アドレスを渡す
  • Postfix Alias - kotaroito's notes

    Postfixのaliasを設定するには通常/etc/aliasesに書けばいいんですが、宛先に設定するアドレスはサーバ上の別ファイルで管理されており、どうしたもんかと悩んでました。 宛先ファイルが更新されたら、/etc/aliasesを手動で編集 → 忘れそう&面倒 宛先ファイルが更新されたら、sedか何かで/etc/aliasesを置換 → ミスるとファイル壊しそう メールが飛んで来たら、パイプからperl起動し、perlから宛先ファイル読む → 送信処理書くのやだ どれもイマイチな案だと思って調べたところ、aliasは複数ファイル設定できるじゃないか! alias_maps = hash:/etc/aliases, hash:/etc/aliases.warnings alias_database = hash:/etc/aliases, hash:/etc/aliases.warn

    Postfix Alias - kotaroito's notes
  • Perl で OAuth / モジュール OAuth::Lite::Consumer インストール – シングスブログ

    シングスブログ 中小企業のマーケティングやブランディングのコンサルティング。事業開発 (ビジネスモデルの開発)、デジタルマーケティングやウェブサイト改善など事業の持続的・長期的な成長・発展に貢献できるサービスを提供しています。 Twitter や Facebook などウェブサービスの連携には欠かせなくなりつつある認証システム OAuth (オー オース)。アプリ開発者としてマスターしておきたい認証システムのひとつ。今回モジュール OAuth::Lite::Consumer をインストールして、Perlで OAuth 認証できる環境をつくってみた。Twitter で認証してアカウント情報を表示するサンプルプログラムも。 OAuth::Lite::Consumer インストール ふつうに cpanm でインストールできず。パッケージ openssl-devel が必要。 cpanm OAut

  • Twitter OAuth認証サンプル - みのねっとぶろぐ(2010-06-13)

    Twitter OAuth認証サンプル 期限まであと半月と迫って来ましたが、対応が出来てません。 とりあえず、OAuth認証って何ぞや、なんてことはおいておいて、 Twitter の OAuth認証を通すサンプルプログラムを作ってみたですよ。 TwitterのOAuth認証に対応する手順をまとめながら実際にやってみることに、いつものように、perlによるサンプルコードも作成して公開しておきますので良かったら使ってください。手順は、以下の通り。 1. Twitterでアカウントを取得します。 2. Twitterでアプリケーション登録を行い、Consumer keyとConsumer secretをメモしておきます。 http://twitter.com/apps 3. CPAN Net::OAuth をサーバに入れます。 私の環境の場合、Class::Accessor がなかったのでこ

  • Net::Twitterでtwitter認証をスマートに行う - wktkWebDiary

  • Perlでセッションを使う その2:クッキーを使わず、POSTやGETでセッションIDを渡す - ウィリアムのいたずらの、まちあるき、たべあるき

    ウィリアムのいたずらが、街歩き、べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) 昨日、Perlでセッションを使う その1:クッキーを利用(セッションIDを入れる)。というのを書いたので 、今日は、Cookieを使わないで、POSTやGetの引数にセッションIDをセットしてやってみます。 なお、「1:CGI::Sessionを入手する」と、「今回の課題」までは、昨日の話と同じです。 ■追加仕様:セッションIDの追加 課題に関しては、昨日とおなじ、 1行目に、セッションIDを表示し、 2行目に、アクセスするたびごとに1あがる しかし、10になるとセッション自体を削除する 3行目は、とびとびに1が出たり出なかったりする なのですが、セッションIDを渡すところを追加します。 1回目のアクセスは、それでOK. 2回目にアクセスするときには、URLに、sid=1行目のセ

    Perlでセッションを使う その2:クッキーを使わず、POSTやGETでセッションIDを渡す - ウィリアムのいたずらの、まちあるき、たべあるき
    kiryuu
    kiryuu 2012/06/08
  • POST送信・Cookie管理 - DiaryException

    POST送信 Python import urllib2 params = urllib2.urlencode({'name': 'foo', 'pass': 1234, 'location': 'Japan'}) f = urllib2.urlopen("http://example.com/cgi-bin/query", params)Perl use LWP::UserAgent; $ua = LWP::UserAgent->new; $req = HTTP::Request->new(POST => 'http://www.perl.com/cgi-bin/BugGlimpse'); $req->content_type('application/x-www-form-urlencoded'); $req->content('match=www&errors=0'); $res =

    POST送信・Cookie管理 - DiaryException
    kiryuu
    kiryuu 2012/06/07
  • PerlでPOSTメソッドの送信を行う | ぺんラボブログ

    PerlでPOSTする必要があったので調べてみた。 HTTP::Request::CommonでPOSTするデータを用意して、LWP::UserAgentに委ねるだけ。 この連携はいつ使っても感動しますね。 use strict; use LWP::UserAgent; use HTTP::Request::Common; # POST準備 my $url = 'http://exsample.com/receive.cgi'; my %postdata = ( 'id' => 'id', 'pass' => 'pass' ); my $request = POST( $url, \%postdata ); # 送信 my $ua = LWP::UserAgent -> new; my $res = $ua -> request( $request ) -> as_string;

  • Perl で、POST したい。

    Perl で POST するには、LWP で my $req = HTTP::Request->new(POST => $url); として URL を指定し、 $req->content_type('application/x-www-form-urlencoded'); $req->content('Entity=Flight&ContractID=490&Enroute=N&FlightCategory=...'); のように POST するデータを与えればよい。サーバ(CGI スクリプト)に渡すパラメータは、URL の 「?」 の後に続き、<パラメータ名1>=<値1>&<パラメータ名2>=<値2>&<パラメータ名3>=<値3>&…といった形で、「&」 を用いていくつものパラメータと値の組み合わせをつなげることが出来る。 以下は、FryteComm というサイトにアクセスして、XML

    kiryuu
    kiryuu 2012/06/07
  • Perl - RyoWiki

    kiryuu
    kiryuu 2012/05/05
    Net::SMTPでのエンベロープ指定
  • おそらくはそれさえも平凡な日々: PerlのIdiomをCPANモジュールを使って可読性を高くしてみる

    今年からKayac技術部では以前以上にPerlを推進する方向で進めています。そんな中でこれまでPerlを書いたことのないエンジニアにもPerlを書いてもらうことも多くなってきたのですが、PerlのIdiomがやはりわかりづらいんだなぁということを感じています。 割りとサクッとやっつけでコードを書くことが出来るのもPerlの良い点ですが、まあ分かりづらいよね...、と言うことで最近はPerlに慣れない人に対しても可読性が高くなるように多少心がけています。 てことで、PerlのIdiomとそれを読みやすくしたものを幾つか。 ファイル一気読み こんな感じで書いてしまうことが多いと思います。 use autodie; も併用することが多いので、or dieとかも書かない感じ。 my $content = do {local $/; open my $fh,'<:utf8',$file_name;<

    kiryuu
    kiryuu 2012/04/24