DELAYER(1) | InterNetNews Documentation | DELAYER(1) |
delayer - A pipe to delay line-based input by a given time
some-program | delayer [--[no-]buffered] [--delay seconds] [--store filename] -- some-other-program [args ...]
Legacy calling convention:
some-program | delayer seconds some-other-program [args ...]
The delayer program implements a delaying pipe. Lines sent to the standard input of the process are spooled, and only printed to the standard input of some-other-program after a certain delay time has passed.
The main use case is for a news feed that deliberately should not distribute articles as soon as possible. One reason is giving cancel control articles and NoCeM notices time to arrive so that innd remembers the Message-IDs of those cancelled articles before they actually arrive. It permits cancelling articles before they are locally stored and spread to other peers. The delay can be set up for outgoing feeds wanting that or, even better for not slowing the propagation of articles, internally between a frontend instance of innd receiving the articles from all your peers and another local instance of innd fed by your frontend with a delay except for cancels and NoCeM articles.
Another use case is using a link only as a backup.
The steps to set up a delayed feed using delayer and innfeed are:
log-file: innfeed-delayed.log pid-file: innfeed-delayed.pid status-file: innfeed-delayed.status
Using the same value for backlog-directory in both innfeed.conf and innfeed-delayed.conf is fine because the site names in newsfeeds are unique (see below with "news.uu.net" and "news.uu.net-delayed").
innfeed-delayed!\ :!*\ :Tc,Wnm*,S16384:<pathbin>/delayer --delay 120 -- \ <pathbin>/innfeed -c innfeed-delayed.conf
This will delay articles via that feed for 120 seconds.
news.uu.net/uunet\ :!*,control,control.*,news.lists.filters\ :Tm:innfeed! news.uu.net-delayed/uunet\ :*,!control,!control.*,@news.lists.filters\ :Tm:innfeed-delayed!
In that case, be sure to use the same "news.uu.net-delayed" peer name in innfeed-delayed.conf. Note that you should only configure a delayed feed for a remote peer if its news administrator agrees with that (he may want a real-time feed, or already have locally implemented a delay on his incoming feeds).
ctlinnd reload newsfeeds 'setting delayed feeds'
When this flag is used, these lines will be written to the given file instead, to be used upon next startup. Using an absolute path name is recommended.
This interface is considered legacy and will be removed some day.
If the standard input is closed (when for instance the feed is closed or restarted), all lines in the store are printed immediately, breaking the contract of delaying them, unless the --store option is used.
If the number of articles in that feed is rather low (just a few articles per delay time or less), some effects of buffering will delay the transmission even further. See the --no-buffering option to alleviate this.
Initial version written in July 1998 by Christian Mock <cm@tahina.priv.at>.
Improved and documented by Christoph Biedl in January 2024.
delay(1), innfeed.conf(5), newsfeeds(5).
2024-03-31 | INN 2.7.2 |