[Gllug] Delayed data feed

Neil J. Macvicar neilm at kernelspace.co.uk
Wed Jan 12 22:50:51 UTC 2011


As was mentioned before, it's not so trivial a task.

I'd approach it as follows :-

1. Create a FIFO, e.g mkfifo foo. (Note that if the fifo is not opened for reading, it will send a SIGPIPE to the writing process, causing it to block - see man(7) fifo).

2. Run a shell script that does the following :-

cat < foo >> delivery.txt

3. Note the PID of the shell script.

4. Run another shell script
while true ; do
sleep 30
kill -SIGSTOP <pid>
echo delivery.txt
echo "" > delivery.txt
kill -SIGCONT <pid>
done

This process could probably be optimised somewhat, but it ought to suffice.

Cheers,
--Neil.

----- Original Message ----- 
From: "- Tethys" <tethys at gmail.com> 
To: "Greater London Linux User Group" <gllug at gllug.org.uk> 
Sent: Wednesday, 12 January, 2011 4:33:02 PM 
Subject: [Gllug] Delayed data feed 

Does anyone know of a simple delay utility that consumes data from 
stdin and outputs it on stdout a fixed time later? What I want to be 
able to do is: 

mkdata | delay 30 | send_data_to_customer 

That will send the (time sensitive) output of mkdata to the customer 
with a 30 second delay. The amount of data I'm talking about isn't so 
large that I need to worry about memory usage, and buffering it in RAM 
will work just fine. I can write it myself, but I'd rather not 
reinvent the wheel if someone's already done it. 

Tet 

-- 
"Any sufficiently advanced financial instrument is indistinguishable from fraud" 
-- 
Gllug mailing list - Gllug at gllug.org.uk 
http://lists.gllug.org.uk/mailman/listinfo/gllug 
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list