Dec 8
PublishPseudocronの使いかた
conveyorで定期処理を行う為のworker(PublishPseudocron)を作成しました。
これを使えば
・feedを定期的にビルドする(FeedOutを
・負荷の掛かる作業(例えば他のサービスを集中的に使う)を分散しながら行う
なんてことが出来るようになります。
使いかたは
0.定期的に実行したいラインを作成します。
1.PublishPseudocronをインストールする(conveyorのworkerインストーラーからインストール出来ます)
2.unix(動作未確認ですが)、linuxのシェルを使いたい人は
workerディレクトリ/PublishPseudocron/pseudocron.shの実行権限を設定します。
3.conveyorのライン設定画面でpseudocronを設定します。設定項目は
(実行するライン名(.phpは要りません),OSのタイプ(ブラウザから実行することも出来ます)、ラインに送信するデータ、定期処理の終了タイミング、終了タイミングを指定回数とした場合の回数、1処理毎に処理を休む時間(秒指定))です。
これで出来るようになります。
サンプルとしてwindowsでtwitterのpublic timelineのフィードを定期的に取得するラインを置いておきます。それぞれのソースをpublishディレクトリに置いて、cron.phpを実行すれば動いて、c:/path/to/store/twitter.xmlにフィードを出力します。
cron.php
<?php
require_once("__init__.php");
Rhaco::import("Conveyaml");
Conveyaml::execute(
<<< __YAML__
---
plugins:
-
module: PublishPseudocron.PublishPseudocron
config:
file: feed
type: msdos
post: all
finish: none
loop:
time: 600
__YAML__
);
?>
feed.php
<?php
require_once("__init__.php");
Rhaco::import("Conveyaml");
Conveyaml::execute(
<<< __YAML__
---
plugins:
-
module: FeedIn.FeedIn
config:
url: http://twitter.com/statuses/public_timeline.atom
-
module: PlanetPublishFeed.PlanetPublishFeed
config:
dir: c:/path/to/store/twitter.xml
__YAML__
);
?>
FeedOutはファイル書きだしが出来ないので、書きだしが出来るPlanetPublishFeedを使いました。一番単純な形ではこういった使いかたになると思います。
ちなみにシェルを使う場合、定期実行させるラインにSubscriptionArgsを入れればcron側で取得したrssを引数で渡すことが出来ます。ブラウザを使う場合はrss="rssデータ"で送信されるのでSubscriptionRequestを定期実行させるラインに入れて、rssを取得するようにすればrssを受け取って作業をすることが出来ます。
この例はまた後で。
このエントリーのはてなブックマーク (