私が自己組織化システムに興味を持っていると言う価値があります。 確かに、トラッカーをより頻繁に調べたり、ユーザーを呼び出したりするために、開発者を蹴るスペシャリストを雇うことができます。しかし、小さな会社の現実では、これは贅沢です。 したがって、この問題は特定の通知メカニズムを通じて解決する必要があるように思えます。
すぐに、問題は次のように解決できます。
- Redmineは電子メールアラートを送信できます。 原則として、何が必要ですが、いくつかの欠点があります。まず、5分ごとに誰もメールをチェックしません。 第二に、この通知機能はユーザーが無効にできます。 企業のメールがない場合、このような通知書はスパムセクションに急ぎます。
- IDEの拡張。たとえば、Eclipseのmylyn 。 残念ながら、それは一方の端からのみ問題を解決します。普通のユーザーはIDEを持っていません。 しかし、開発者にとっては、IDEから直接Redmineで作業するための最も広い可能性を提供します。 プレインストールされたIDEとカスタマイズされた拡張機能を備えたワークステーションを企業が展開できる場合、これはおそらく(開発者にとって)最適なオプションです。
- jabberまたはicqを介したアラート。
Redmineには、興味深いオランウータンジャバーボットがあります。 これは野心的なプロジェクトであり、その目的は、jabberプロトコルを介してRedmineとの作業を整理することです。 理想的な世界では、人間の言語でメッセージコマンドを送信するだけで、タスクを閉じたり、作成したり、コメントしたりできます。 しかし、それは理想的な世界です。 しかし、実際の生活では設定が難しく、コマンドが修正され、人間の言語の話はありません。 さらに、ボットがRedmineで動作するには、シャギーバージョン用に作成されたプラグインをロールアップする必要があります。 そして、最も重要なマイナス:英語のみのサポート。
残念ながら、Redmineのジャバーアラートを整理する他のオプションは見つかりませんでした。 独自の通知サービスを作成する必要がありました。
アラートサービス「send2me」
先ほど書いたように、Redmineはタスクの変更に関するアラートをメールで送信できます。 この機会を利用して、jabberアドレスのリストにメールメッセージを直接送信することにより、jabber通知の送信を実装できます。 この考えに基づいて、 send2me.orgが登場しました。
登録後、各ユーザーは「mail@send2me.org」などの個人用メールボックスを受け取ります。 この電子メールボックスで受信したメッセージは、作成されたルールに従って、jabber-contactsのリストに送信されます。 このサービスは、配信するメッセージを選択するためのルールを記述するためのシンプルなインターフェースを提供します。 ルールは、条件付きジャンプブロック、正規表現、およびルーティングテーブルによって記述されます。 これらの3つのコンポーネントを使用すると、メッセージを送信するための任意の複雑なルールを記述することができます。 ただし、Redmineからアラートを送信するためのルールの作成は、組み込みテンプレートのおかげで簡単な作業です。
そのため、Redmineのジャバーアラートを設定します。
1. send2me.orgに登録し、「mail@send2me.org」などの個人用メールボックスを取得します。
2. Redmineでは、すべての通知を聞くユーザーを作成し、メールアドレスとして「mail@send2me.org」を指定します。 したがって、タスクのすべての変更が指定されたメールに送信されるようにします。
3.ここで、Redmineのメッセージ処理ルールを作成する必要があります。 これを行うには、ユーザーとしてsend2me.orgにアクセスし、「ルール」セクションの「追加」ボタンをクリックします。
ルール編集フォームで、「Redmine」テンプレートを指定します。
変更する必要がある項目を調べてみましょう。
- 最初のブロック(画像の赤い数字「1」)では、Redmineから来ていないすべてのメッセージを破棄します。 これは、正規表現を使用して行われます。
$ header {'X-Redmine-Host'} =〜/^yourredminehost.com$/
したがって、「 yourredminehost.com 」の代わりに、Redmineのホストを入力する必要があります。 - 2番目のブロックでは、プロジェクトからではないすべてのメッセージを破棄します。 正規表現が使用されます:
$ header {'X-Redmine-Project'} =〜/ ^識別子$ /
ここで、「 identifier 」はRedmineのプロジェクトIDです。 このブロックはオプションです-削除すると、すべてのプロジェクトからのメッセージが受信されます。 - 最後に、3番目のブロックでは、Redmineユーザーとそのジャバーの連絡先の連絡表を記入する必要があります。
注: Redmineによって生成されたメッセージヘッダーは、メッセージの受信者を識別するために使用されます。
($ヘッダー{'X-Redmine-Issue-Author'}、 $ヘッダー{'X-Redmine-Issue-Assignee'}、 split( ';'、$ header {'X-Redmine-Watchers'}))残念ながら、Redmineはタスクオブザーバーをメッセージヘッダーに追加しません。 したがって、「すぐに使える」通知は、タスクの作成者と指定された実行者にのみ届きます。 オプションのX-Redmine-Watchersヘッダーは、オブザーバーを識別するために使用されます。 動作させるには 、Redmine用のシンプルなプラグインをインストールする必要があります(Redmineの設定を使用した移行や操作は必要ありません)。
これで、Redmineジャバーアラートを設定する手順は完了です。 さらに興味がある人のために、send2me.orgサービスのアーキテクチャについて説明します
アラートサービスアーキテクチャ
図は、このようなサービスの組織の概略図を示しています。
電子メールで受け取った手紙は、次のように処理されます。
- Postfix-受信したメッセージを受け入れ、名前付きパイプにリダイレクトします。 Postfixは、send2me.orgデータベースにエントリがある(つまり、登録ユーザー用の)ユーザーからのメッセージのみをリダイレクトするように構成されています。 他のメッセージは削除されます。
- ルールプロセッサ -名前付きパイプからメッセージを抽出し、ユーザールールのセットを適用します。 メッセージがルールに従って破棄されない場合、jabberの連絡先に送信する準備ができ、次の名前付きパイプにリダイレクトされます。
- Ejabberdモジュール(ボット) -名前付きパイプからメッセージを抽出して送信します。
別のリンクは、 ダンサーで記述され、カスタムルールを作成および編集するように設計されたweb crudです。
メールの添付ファイルはサービスによって処理されませんが、 renattachを使用して受信時に切り取られます。
そのようなアーキテクチャーのパフォーマンスを評価することは難しいと思います:postfixとejabberdは有名な高品質の製品です。 狭いリンクはperlで書いたシステムの一部だと思います。 ハブラー効果によって不正サーバー(1Ghzおよび512MB)がかなり早くダンプされると思いますが、それは本当に興味のあるユーザーにサービスを提供するには十分です。