[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp:03124] セカンダ リでドメイン別に maximal_queue_lifetime を変えるには
- Subject: [postfix-jp:03124] セカンダ リでドメイン別に maximal_queue_lifetime を変えるには
- From: lst <lst@xxxxxxxxxxxxx>
- Date: Thu, 24 Jul 2003 21:12:49 +0900
こんにちは、やまぐちです。
postfix で複数のドメインのセカンダリを運用する時に、ドメイン毎に
maximal_queue_lifetime を変更したいと思っているんですが、ちょっと調べた
ところ難しそうでした。
思いついた案を以下に4つ上げますが、実現の可能性やアイデアなど皆様のお知
恵をおかしください。
1.main.cf の maximal_queue_lifetime をそれぞれ変えた複数のサーバをたて
て別々に処理する。
⇒できることは明らかですが、運用の手間が大きいです。
2.いったん全て HOLD して個別に postsuper で処理する
⇒スクリプトを定期的に実行すればできるかもと思いますが、どんなも
のでしょう。少なくとも処理は重そうです。
3.Filter を使って実装する
⇒これも出来そうですが、どのぐらいのパフォーマンスが出るか疑問。
4.qmgr/nqmgr を改造する
⇒一応ソースをざっとみましたが、以下のような方針でやれば改造でき
そうに思えました。皆様のご意見をお聞かせてください。
・処理してる場所は1個所なのは確認
src/qmgr/qmgr_active.c lines 368
if (event_time() >= message->arrival_time + var_max_queue_time) {
この var_max_queue_time をRecipientドメインをキーにして時間を返す関
数にすればよさそう
・では Recipient はどの変数を見れば良いのかというと、複数のRecipientが
存在する場合もあるので以下のように構造体をなめればよさそう。
for (count==0; count < &message->rcpt_list.len; count++) {
&message->rcpt_list.info[count]->address;
}
・複数の Recipient がいる場合はその最大の値で比較するという方針
・Hash などの外部テーブルを参照するようにしたいが、その方法は、
src/global/maps.c:maps_create() でプロセス最初にマップをオープン?
src/global/maps.c:maps_find() で検索?
src/global/maps.c:maps_free() をプロセス最後に呼んでクローズ?
../virtual/virtual.c が参考になりそう
・マップ名は src/qmgr/qmgr.c の以下の部分で自動的に main.cf から
読み込めそう
trigger_server_main(argc, argv, qmgr_trigger_event,
MAIL_SERVER_STR_TABLE, str_table,
0);
ただしマップ名称を以下に追加しておく
static CONFIG_STR_TABLE str_table[] = {
};
以上です。ご意見おまちしてます。
--
lst <lst@xxxxxxxxxxxxx>
- Follow-Ups
-
- [postfix-jp:03125] Re: セカン ダリでドメイン別に maximal_queue_lifetime を変えるには, IKEDA Nozomu
[検索ページ]
[Postfix-JP ML Home]