deals with the majority of the tasks needed for this system. Although
feeds can be PubSub-enabled via XML-RPC, SOAP, HTTP POST, or not at
all, and while for completeness we should be able to deal with all of
these situations to make a Publish and Subscribe system fully
XML-RPC is the only system
being used at the moment and the only one we will discuss here.
So, onward! Example 12-1 shows the entire program listing, but first let’s step through the interesting bits to illustrate a few points.
setting up the necessary variables and loading the modules, we get to
the section of the program that deals with the current subscriptions.
When the program is run for the first time, this section is
irrelevant, but since we’ll probably run this script
every hour from
cron, it soon becomes necessary.
Subscriptions last for 25 hours, so we need to make sure they are
renewed in time.
logger ("\n Program started. Let's go!\n"); # First we need to strim the PubSub records and remove all the old entries. # Work out the time 25 hours ago (1 hour = 3600 seconds, so 25 hours = 90000 seconds) my $oldestpossibletime = time( ) - 90000; logger ("The oldest allowable subscription cannot have been made earlier than $oldestpossibletime"); # Open the subscriber list created by pubSubListener and stick it in an array. open (PUBSUBLIST, "<$pubsublog"); my @lines = <PUBSUBLIST>; close (PUBSUBLIST); # Clear the subscriber list. unlink ($pubsublog) or ...