Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DELAYER(8)		   InterNetNews Documentation		      DELAYER(8)

NAME
     delayer - A pipe to delay line-based input by a given time

SYNOPSIS
     some-program  |  delayer [--[no-]buffered] [--delay seconds] [--store file-
     name] -- some-other-program [args ...]

     Legacy calling convention:

     some-program | delayer seconds some-other-program [args ...]

DESCRIPTION
     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	distrib-
     ute articles as soon as possible.	One reason is giving NoCeM messages time
     to  arrive  so that innd remembers the Message-IDs of those cancelled arti-
     cles 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 propa-
     gation of articles, internally between a frontend instance of innd  receiv-
     ing the articles from all your peers and another local instance of innd fed
     by your frontend with a delay except for NoCeM articles.

     Another use case is using a link only as a backup.

CONFIGURATION
     The steps to set up a delayed feed using delayer and innfeed are:

     *	 Choose a name for that feed, e.g. "innfeed-delayed".

     *	 In pathetc, copy innfeed.conf to innfeed-delayed.conf.

     *	 Edit  innfeed-delayed.conf  in  pathetc,  and change the occurrences of
	 "innfeed" to "innfeed-delayed", typically in the log-file, pid-file and
	 status-file parameters.  If these parameters are not  set,  you  should
	 explicitly  set them in innfeed-delayed.conf so that their default val-
	 ues do not conflict with a running instance in parallel of a  real-time
	 feed using innfeed.  For instance:

	     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 in-
	 nfeed-delayed.conf  is  fine  because	the  site names in newsfeeds are
	 unique (see below with "news.uu.net" and "news.uu.net-delayed").

     *	 Possibly limit max-connections to 1.

     *	 Only keep in innfeed-delayed.conf the configuration of the peers  which
	 should receive a delayed feed.

     *	 Add a new entry to newsfeeds in pathetc like:

	     innfeed-delayed!\
		 :!*\
		 :Tc,Wnm*,S16384:<pathbin>/delayer --delay 300 -- \
		     <pathbin>/innfeed -c innfeed-delayed.conf

	 This  will delay articles via that feed for 300 seconds.  If the intent
	 is to give NoCeM messages time to arrive, the delay  should  match  the
	 frequency at which they are sent in the news.lists.filters newsgroup.

     *	 Use  "innfeed-delayed!"  instead of "innfeed!" in the newsfeeds entries
	 for peers which should receive a delayed feed.  If you  wish,	you  can
	 also set up two entries for each peer, keeping a real-time feed through
	 "innfeed!"  for NoCeM messages, and delaying the feed of other articles
	 through "innfeed-delayed!".

	     news.uu.net/uunet\
		 :!*,news.lists.filters\
		 :Tm:innfeed!

	     news.uu.net-delayed/uunet\
		 :*,@news.lists.filters\
		 :Tm:innfeed-delayed!

	 Cancel articles should also be delayed so that they  arrive  after  the
	 article  they	cancel.   Otherwise  INN cannot authenticate them (using
	 Cancel-Lock).	Unauthenticated cancels are  not  processed  by  default
	 (see  docancels in inn.conf) but if you decide to process them, you can
	 also send the control.cancel pseudo-newsgroup as a real-time feed.

	 Be sure to use the same "news.uu.net-delayed" peer name in  innfeed-de-
	 layed.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 in-
	 coming feeds).

     *	 Reload the newsfeeds configuration file:

	     ctlinnd reload newsfeeds 'setting delayed feeds'

OPTIONS
     --buffered, --no-buffered
	 By default, output is buffered.  This increases the time until an arti-
	 cle is actually sent if the  number  of  articles  is	small.	 Disable
	 buffering to have a more accurate delay, at a price of a (possibly neg-
	 lectable) performance overhead.

     --delay seconds
	 Delay articles by the given amount of seconds.  Default is 60.

     --store filename
	 By  default, all buffered lines are written out if the input is closed,
	 even if the configured delay has not been reached yet.

	 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.

     -- some-other-program [args ...]
	 -- separates the options to delayer from  the	program  the  output  is
	 written to: some-other-program is the full path to the program, option-
	 ally followed with some args parameters.

LEGACY OPTIONS
     This interface is considered legacy and will be removed some day.

     delay
	 Delay articles by the given amount of seconds.

     some-other-program [args ...]
	 The  full path to the program the output is written to, optionally fol-
	 lowed with some args parameters.

BUGS
     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 transmis-
     sion even further.  See the --no-buffering option to alleviate this.

HISTORY
     Initial version written in July 1998 by Christian Mock <cm@tahina.priv.at>.

     Improved and documented by Christoph Biedl in January 2024.

SEE ALSO
     delay(1), innfeed.conf(5), newsfeeds(5).

INN 2.8.0			   2026-06-22			      DELAYER(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=delayer&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help