[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