[Twisted-Python] Launching Twisted client using Process call
naman jain
namanvit at gmail.com
Fri Nov 20 01:00:03 MST 2009
Hi,
Thanks for the reply.
I actually came across Process documentation for twisted; but in my case my
the script which calls the twisted client is not implemented in Twisted
It is just a controller program which instantiates a central repository and
spawns off 2 threads and then the threads update to that repository
periodically (so I did not feel the need to run a reactor loop as in Twisted
).
Is there any way to call a Twisted client in a Process or a thread without
using the reactor?
To explain better:
master.py spawns 2 threads to update a central repository.
build_worker_t : launches a Twisted client to connect to a Twisted server
running on a build machine
test_worker_t : launches a Twisted client to connect to a Twisted server
running on a Test Machine
master.py:
___________________________________________________________________
// make a central repository for the threads to update
class Globals:
repo = []
lock = threading.Lock()
def main():
build_worker_t = threading.Thread( target=dispatch_build_worker)
build_worker_t.start()
test_worker_t = threading.Thread( target=dispatch_test_worker)
test_worker_t.start()
build_worker_t.join()
test_worker_t.join()
def dispatch_build_worker():
# build_worker.main is a twisted client
foo = Process(target=build_worker.main, args=(build_q,uid,))
foo.start()
foo.join() //wait for the process(ie. client-server communication to
finish)
//get status from build_q and update repo
def dispatch_test_worker():
Regards
Naman
On Tue, Nov 17, 2009 at 3:30 PM, David Ripton <dripton at ripton.net> wrote:
> On 2009.11.17 07:07:50 +0100, naman jain wrote:
> > I try to launch it as a Process:
> > foo = Process( target=twisted_client.main, args=(q,uid,))
> > foo.start()
> > foo.join()
> > status = q.get()
>
> > Launching the client in this manner, is not showing reliable results.
>
> You didn't give a long enough example to be certain, but that looks like
> multiprocessing.Process syntax. The multiprocessing module does not
> work reliably with Twisted. Neither does the subprocess module.
>
> You should use the equivalent Twisted process functionality, shown at
> http://twistedmatrix.com/projects/core/documentation/howto/process.html
>
> There's also https://launchpad.net/ampoule, but for the small example
> you show, the basic Twisted process stuff should be fine.
>
> --
> David Ripton dripton at ripton.net
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20091120/2a821804/attachment.html>
More information about the Twisted-Python
mailing list