agoひとまずChangesetまで保存できるようになったけど、かなりエラー処理しっかりしとかないと、すぐ整合性が崩れそうだ...。Repositoryまでとは言わないけど、かなり大変なことに手を出した気がするぞ...。ago一旦整理のために、処理の流れをかいてみる。表示処理¶おおまかに分けて以下の処理がある。ビルドの情報を更新するDBからジョブの情報を取得する¶ジョブの情報を取り出す。最新のビルド情報を取り出す。ここでやるべき処理ではないビルドの情報を取得する¶rssLatestを使って各ジョブの最新ビルド情報を取得するDBの最新ビルド番号と異なる場合に、以下の処理を行うHudsonAPI(各ジョブのrssAll)をノックして、ビルド情報を取得する本来はDBの最新ビルド番号以降から、現時点での最新ビルド番号までとしたいのだけど、方法が分からない。agoさて、今回はどのへんで整合性が必要となるか?DBに登録されているジョブの最新ビルド番号と、ビルドの情報ビルドの情報とチェンジセットの情報これくらい?チェンジセットの情報を取得できなかったら、ビルド情報は保存しない。最新のビルド情報を取得中に、1件でもエラーが発生したら、ビルド情報は取得できなかったとするビルド情報を取得中に、エラーが発生したら、最新のビルド情報は更新しない2つ目のルールはちょっと厳しいなぁ。途中が抜けるのはいやなので、チェンジセットの情報を取得できなかったら、ビルド情報が取得できなかったことにする。最新のビルド情報を取得中に、1件でもエラーが発生したら、成功した分を保存するビルド情報を取得中に、エラーが発生したら、成功したビルドの中で最新のビルド情報を保存するかなぁ。エラーの情報はどう扱おうか。不具合でジョブの情報が取れない場合もあるので、エラーが発生したビルドのコトはとりあえず置いとく。いうスタンスを取ろうビルド情報を取得中にエラーが発生しても、とりあえず全てのビルドの情報を取得するエラーの内容によって、ビルド情報を取得するべきか、そうでないのか判断したほうがよさそうだチェンジセットの情報を取得できなかった場合でも、とりあえずビルド情報は保存するエラーが発生した旨を登録できればいいだろう。ジョブの最新ビルド番号は、取得に成功したビルド情報の中で、一番新しいものにするとは言え、エラーが発生したビルドを放っておくのもかわいそうだし、どうやってリカバリーしたものか。リトライを手動でできるようにしておくかな?ということは、取得したビルド情報を見れたほうがいいってことだよなぁ...。agoエラー時のリカバリは取りあえず放っておけばいいんじゃないでしょうか。シンプルに作って後から機能を追加していってしまえば。なんとなく、RSSは取れるけど詳細は取れないっていうケースはまず起こらないんじゃないかと。どちらも元ネタは同じだと思うので。wrote:エラー時のリカバリは取りあえず放っておけばいいんじゃないでしょうか。シンプルに作って後から機能を追加していってしまえば。問題じゃなくなるので、エラー周りはある程度ユーザに親切にしておきたいなぁと思っているのです。長いこと放置状態もよくないので、そろそろかなぁ。なんとなく、RSSは取れるけど詳細は取れないっていうケースはまず起こらないんじゃないかと。どちらも元ネタは同じだと思うので。実はあったりするんですよ。RSSが取れなかったら多分次回アクセス時に勝手に取れなかったところ以後を取りにいくことになるんですよね?これは結構悩みどころで、エラーコードによるのかなぁと思っていたり。系は取りに行く価値があるけれど、400系ってもう一度取りに行って成功する確率あるのかな?と。すると、エラーがおきたことは分かるようにしておいて、自動では取りに行かないが正解かもしれません。agoとりあえずビルド情報までを保存できるようにして、活動履歴を出してみます。activity_provider/acts_as_event/acts_as_activity_providerを解説しているところはないですよね...。サイドメニューにすら出ない...。記載するようにします。いえばテスト結果を全然表示できてないや...。50とりあえず活動履歴がでるようになったので、半分きたかなと。ago詳しい情報を取得する。取得できる件数と同じ¶ビルド中のものがあった場合は、1件多くなるかもしれない。モジュールが管理してくれているから、番号だけあれば十分。表示名/ファイル名/ダウンロードする際のURL成果物はファイルだったりフォルダだったり、ビルドの設定によって異なる。フォルダの場合?は、表示名やファイル名がないっぽいので、その辺を判断材料にするか。使い道¶さすがに詳細なだけあって、大きなビルドだと返事がかえってくるまでに時間がかかる。呼び出すほうがストレスが溜まりにくそう。テスト結果の取得から。agoテスト結果と変更が保存、活動の履歴に表示できるようにしました。今まで取得したテスト結果と変更を取得するには、履歴を全て消す必要があります。タブにアクセスしてください。ビルドの情報を更新するタイミングは、Hudsonタブにアクセスしたとき。複数の人が同時にアクセスするとなんだかやばそうな気がする。やって排他制御しようか。詳細を取得するか、しないかを選択できるようにします。100以降の実装は、他のチケットでやります。LangLoading...。