| DELAYER(8) | InterNetNews Documentation | DELAYER(8) |
نام (NAME)
delayer - یک پایپ برای ایجاد تاخیر زمانی مشخص در ورودیهای مبتنی بر خط
خلاصه دستور (SYNOPSIS)
some-program | delayer [--[no-]buffered] [--delay seconds] [--store filename] -- some-other-program [args ...]
روش فراخوانی قدیمی (Legacy):
some-program | delayer seconds some-other-program [args ...]
توضیحات (DESCRIPTION)
برنامه delayer یک پایپ تاخیرانداز را پیادهسازی میکند. خطوط ارسالشده به ورودی استاندارد فرآیند در صف موقت (spool) ذخیره میشوند و تنها پس از گذشت مدت زمان تاخیر تعیینشده، در ورودی استاندارد some-other-program نوشته (چاپ) میشوند.
مهمترین کاربرد این برنامه برای فیدهای خبری است که عمداً نباید مقالات را در سریعترین زمان ممکن توزیع کنند. یک دلیل این امر، دادن زمان کافی به پیامهای NoCeM برای رسیدن است تا innd بتواند شناسه پیام (Message-ID) آن مقالات لغوشده را پیش از رسیدن واقعی آنها ثبت کند. این ویژگی اجازه میدهد تا مقالات قبل از ذخیرهسازی محلی و انتشار به سایر همتایان لغو گردند. این تاخیر را میتوان برای فیدهای خروجی متقاضی این ویژگی تنظیم کرد یا، در روشی حتی بهتر برای جلوگیری از کاهش سرعت انتشار مقالات، به صورت داخلی میان یک نمونه فرانتاند از innd (که مقالات را از تمام همتایان شما دریافت میکند) و نمونه محلی دیگری از innd (که از فرانتاند شما و همراه با تاخیر، به جز برای مقالات NoCeM، تغذیه میشود) برقرار ساخت.
کاربرد دیگر، استفاده از پیوند ارتباطی صرفاً به عنوان یک مسیر پشتیبان (backup) است.
پیکربندی (CONFIGURATION)
مراحل راهاندازی یک فید دارای تاخیر با استفاده از delayer و innfeed عبارتند از:
- انتخاب یک نام برای آن فید؛ به عنوان مثال: "innfeed-delayed".
- در دایرکتوری pathetc، فایل innfeed.conf را به innfeed-delayed.conf کپی کنید.
- فایل innfeed-delayed.conf
را در pathetc
ویرایش
کنید و
موارد
رخداد
"innfeed" را
به "innfeed-delayed"
تغییر
دهید؛ این
تغییر
معمولاً در
پارامترهای
log-file، pid-file و status-file
اعمال
میشود. اگر
این
پارامترها
تنظیم
نشدهاند،
باید آنها
را به طور
صریح در
innfeed-delayed.conf تنظیم
کنید تا
مقادیر
پیشفرض
آنها با یک
نمونه در
حال اجرای
همزمان از
فید
بلادرنگ که
از innfeed
استفاده
میکند،
تداخل پیدا
نکنند. به
عنوان مثال:
log-file: innfeed-delayed.log pid-file: innfeed-delayed.pid status-file: innfeed-delayed.status
استفاده از مقدار یکسان برای backlog-directory هم در innfeed.conf و هم در innfeed-delayed.conf مشکلی ایجاد نمیکند، زیرا نامهای سایت در newsfeeds یکتا هستند (همانطور که در ادامه با "news.uu.net" و "news.uu.net-delayed" آورده شده است).
- در صورت لزوم، پارامتر max-connections را به "1" محدود کنید.
- در فایل innfeed-delayed.conf فقط پیکربندی همتایانی (peers) را نگه دارید که باید فید تاخیردار را دریافت کنند.
- یک مدخل
جدید به
فایل newsfeeds در
pathetc اضافه
کنید،
مانند:
innfeed-delayed!\ :!*\ :Tc,Wnm*,S16384:<pathbin>/delayer --delay 300 -- \ <pathbin>/innfeed -c innfeed-delayed.confاین پیکربندی مقالات ارسالی از طریق این فید را به مدت ۳۰۰ ثانیه به تاخیر میاندازد. اگر هدف، دادن زمان کافی به پیامهای NoCeM برای رسیدن است، مقدار تاخیر باید با تواتر زمانی ارسال آنها در گروه خبری news.lists.filters مطابقت داشته باشد.
- به جای
"innfeed!"، از
"innfeed-delayed!" در
مدخلهای
newsfeeds برای
همتایانی
که باید فید
تاخیردار
دریافت
کنند
استفاده
کنید. در
صورت
تمایل،
میتوانید
برای هر
همتا دو
مدخل تنظیم
کنید: حفظ
فید
بلادرنگ از
طریق
"innfeed!"
برای
پیامهای
NoCeM، و ایجاد
تاخیر در
فید سایر
مقالات از
طریق
"innfeed-delayed!".
news.uu.net/uunet\ :!*,news.lists.filters\ :Tm:innfeed! news.uu.net-delayed/uunet\ :*,@news.lists.filters\ :Tm:innfeed-delayed!مقالات لغو (Cancel articles) نیز باید با تاخیر فرستاده شوند تا بعد از مقالهای که آن را لغو میکنند برسند؛ در غیر این صورت INN قادر به احراز هویت آنها (با استفاده از Cancel-Lock) نخواهد بود. لغوهای تاییدنشده بهطور پیشفرض پردازش نمیشوند (گزینه docancels را در inn.conf ببینید)، اما اگر تصمیم به پردازش آنها دارید، میتوانید شبهگروه خبری control.cancel را نیز به عنوان یک فید بلادرنگ ارسال کنید.
اطمینان حاصل کنید که دقیقاً از همان نام همتای "news.uu.net-delayed" در فایل innfeed-delayed.conf استفاده شده باشد. توجه داشته باشید که تنها در صورتی باید یک فید تاخیردار را برای یک همتای راه دور پیکربندی کنید که مدیر اخبار (news administrator) آن با این موضوع موافقت کرده باشد (زیرا ممکن است خواهان فید بلادرنگ باشد یا قبلاً به صورت محلی تاخیری روی فیدهای ورودی خود اعمال کرده باشد).
- بارگذاری
مجدد فایل
پیکربندی
newsfeeds:
ctlinnd reload newsfeeds 'setting delayed feeds'
گزینهها (OPTIONS)
- --buffered, --no-buffered
- بهطور پیشفرض، خروجی بافر میشود. این امر در صورتی که تعداد مقالات اندک باشد، زمان تا ارسال واقعی مقاله را افزایش میدهد. برای داشتن تاخیری دقیقتر، بافر کردن را غیرفعال کنید؛ البته به بهای اندکی سربار کارایی (که احتمالاً قابل چشمپوشی است).
- --delay seconds
- به تاخیر انداختن مقالات به میزان ثانیههای مشخصشده. مقدار پیشفرض "60" است.
- --store filename
- بهطور
پیشفرض،
در صورت
بسته شدن
ورودی،
تمام خطوط
بافرشده
بلافاصله
در خروجی
نوشته
میشوند،
حتی اگر
زمان تاخیر
تعیینشده
هنوز فرا
نرسیده
باشد.
هنگامی که از این فلگ استفاده شود، این خطوط در عوض درون فایل مشخصشده ذخیره میشوند تا در راهاندازی بعدی مورد استفاده قرار گیرند. استفاده از نام مسیر مطلق توصیه میشود.
- -- some-other-program [args ...]
- علامت -- گزینههای مربوط به delayer را از برنامهای که خروجی در آن نوشته میشود جدا میکند: some-other-program مسیر کامل برنامه است که به صورت اختیاری با برخی پارامترهای args همراه میشود.
گزینههای قدیمی (LEGACY OPTIONS)
این رابط قدیمی (منسوخ) تلقی میشود و روزی حذف خواهد شد.
- delay
- به تاخیر انداختن مقالات به میزان ثانیههای مشخصشده.
- some-other-program [args ...]
- مسیر کامل برنامهای که خروجی در آن نوشته میشود، که به صورت اختیاری میتواند با برخی پارامترهای args همراه باشد.
اشکالات (BUGS)
اگر ورودی استاندارد بسته شود (به عنوان مثال هنگامی که فید بسته یا بازراهاندازی شود)، تمام خطوط موجود در حافظه بلافاصله چاپ میشوند و قاعده تاخیر انداختن آنها نقض میگردد، مگر اینکه از گزینه --store استفاده شده باشد.
اگر تعداد مقالات موجود در آن فید نسبتاً اندک باشد (تنها چند مقاله در هر بازه زمانی تاخیر یا کمتر)، برخی از اثرات بافرینگ ارسال مقالات را حتی بیش از پیش به تاخیر خواهند انداخت. برای کاهش این اثر، گزینه --no-buffering را مشاهده کنید.
تاریخچه (HISTORY)
نسخه اولیه در ژوئیه ۱۹۹۸ توسط Christian Mock <cm@tahina.priv.at> نوشته شد.
در ژانویه ۲۰۲۴ توسط Christoph Biedl بهبود یافته و مستندسازی شد.
همچنین ببینید (SEE ALSO)
| 2026-06-22 | INN 2.7.4 |