Dec 20
Pseudocronの使い方(続き)
ソースは後で書きます>< ※大分後になりましたorz
下書き機能欲しいなー>< ※付きました。これでこんな不細工なことは無くなる・・・かも。
前回のエントリーでも書きましたが、Pseudocronは定期実行させるラインにRSSデータを渡すことが出来ます。
その場合必要になるworkerがあります。定期実行の方法によって
ブラウザの場合:SubscriptionRequest
シェルの場合:SubscriptionArgs
と、違うworkerが必要になります。それぞれconfigは次のようにします。
SubscriptionRequest
module: SubscriptionRequest.SubscriptionRequest
config:
key: rss
set: subscriptionrssobject__rss
escape: none
SubscriptionArgs
module: SubscriptionArgs.SubscriptionArgs
config:
key: 1
set: subscriptionrssobject__rss
escape: none
さらにRSSデータを全部1度に送るかitemごとに分割して送るかも選択できます。こうすることで多数のアイテム処理にかかる負荷を分散させることが可能です。
例としてCSVで作ったフィードアドレスを定期的に送ってフィードを取得し、メールする処理を載せます。
cron部分(任意のファイル名)
<?php
require_once("__init__.php");
Rhaco::import("Conveyaml");
Conveyaml::execute(
<<< __YAML__
---
plugins:
-
module: SubscriptionText.SubscriptionText
config:
filename: feed //publishディレクトリ内のfeedというファイルを読み込みます。
properties: link
splitter: tab
-
module: PublishPseudocron.PublishPseudocron
config:
file: mailer
type: linux
post: each
finish: wholespecified //全部送信したら終了します。
loop: 1
time: 30
__YAML__
);
処理部(mailer.php)
<?php
require_once("__init__.php");
Rhaco::import("Conveyaml");
Conveyaml::execute(
<<< __YAML__
---
plugins:
-
module: SubscriptionArgs.SubscriptionArgs
config:
key: 1
set: subscriptionrssobject__rss
escape: none
-
module: >
SubscriptionRssObject.SubscriptionRssObject
-
module: FilterExplode.FilterExplode //リンクにrssのURLが入っていれば読み込みます。
-
module: PublishMail.PublishMail
config:
to: test@testmail.com
__YAML__
);
色々な応用が出来ると思いますので、やってみられた方は是非教えて下さい。
このエントリーのはてなブックマーク (