Dec 8

PublishPseudocronの使いかた

conveyor help | comment(0)

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を受け取って作業をすることが出来ます。

この例はまた後で。

Nov 7

Conveyor2.1.1リリース

conveyor rhaco | comment(0)

Conveyor2.1.1がリリースされました。

マニュアル http://conveyor.rhaco.org/manual/
ダウンロード http://code.google.com/p/conveyor/downloads/list

ロゴの追加、Safariへの対応など、外面内面で機能追加、修正がされています。