#!/usr/bin/env python
from Pyro.EventService.Clients import Publisher
from Pyro.errors import NamingError
import random, time
class VehicleProducer(Publisher):
directions = ('north','east','south','west')
cars = ('Ford','Toyota','Chrysler','Vauxhall','Honda','BMW')
colors = ('red','green','white','black','blue','yellow')
def nextVehicle(self):
direction=random.choice(self.directions)
car=random.choice(self.cars)
color=random.choice(self.colors)
print color,car,'heading',direction
self.publish('CARS.HEADING.'+direction, (color,car))
def main():
try:
producer=VehicleProducer()
print 'Starting traffic.'
while 1:
time.sleep(random.random())
producer.nextVehicle()
except NamingError:
print 'Cannot find service. Is the Event Service running?'
if __name__=='__main__':
main()
|