2009年3月5日木曜日

Design change

すべてのサービスをThread化して
- MarketAgent
- CandleMaker
- DealAgent
と3つのうち、CandleMakerは1つだけ起動するようにやっていたが
例えば、Forex, Commodity, Stockと3つのマーケットを監視するように
していたとき、処理が重くなってしまい、その後に稼動するDealAgentが
遅れてしまうため、マーケットごとに起動するようにした。
つまり、各マーケットごとに3つのタスクが1セットになる。
コンテナは1つで、いくつでもスレッドをたてられるようにしてあるので
まぁ、9個のタスクをあげてもいい。

Todo:
- クラスアンロードの実装
- スレッドを制御するためのインターフェースの実装
今は、とりあえず、feedsテーブルから登録を削除すれば
トリガーとなるupdateメッセージは送信されなくなるので
その後は、タスクは何もしなくなる。あるタスクだけ変更して
リロードしたい時のための口が必要
- 上記Serviceをまとめた設定ファイルの実装
例えば、services.ymlというファイルに

forex:
- fetch
- candle_maker
- deal

commodity:
- fetch_commodity
- candle_maker_commodity
- deal_commodity
みたいな感じにして、起動時にロードして起動する

0 件のコメント:

コメントを投稿