Using threads from within Python in NOX is basically out.  You have a number of 
other options.

If you just want to do something every second, maybe you can get away with 
using your socket code and just scheduling a timer callback (pyswitch does this 
to expire entries).  You will have to be somewhat careful to not block (for 
long), though.

Two other possibilities are to use the messenger/jsonmessenger component (which 
is how the GUI communicates with the monitoring component), or making use of 
Twisted.  Kyriakos just mentioned these in a bit more detail on the mailing 
list the other day in the "Blocking Modules" thread.

-- Murphy

On Mar 28, 2011, at 7:10 AM, Vishal wrote:

> Hi All,
> 
> in the "install" function of pyswitch - I am starting a thread 
> [thread.start_new_thread ()], which makes a socket connection to another 
> server and sends some data every 1 second.
> 
> I am observing that the thread is started but cannot send the data every 1 
> second... it is not scheduled for 5-10 seconds....and sends data randomly 
> with lot of delay.
> 
> Is there something wrong I am doing? or is there a scheduler where I need to 
> register the thread ? (an app level thread scheduler) or twisted etc is 
> interfering ?
> 
> Any help is appreciated as I am new to python.
> 
> Thanks a lot,
> Vishal
> 
> For running: I have modified pyswitch.py and restarted the nox_core with it..
> 
> The function is below:
> def serveclient(self):
>     print 'serveclient'
>     print self.host,self.port
>     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>     s.connect((self.add_host,self.add_port))
>     print "connected"
>     while 1:
>         s.send('test data')
>         time.sleep(1)
>     s.close()
> 
> 
> 
> 
> _______________________________________________
> nox-dev mailing list
> [email protected]
> http://noxrepo.org/mailman/listinfo/nox-dev

_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to