[Python] Lanciare script da altro script

Balan Victor balan.victor0 a gmail.com
Lun 2 Mar 2015 21:51:01 CET


>
> Il problema principale e' che Python manca di una buona primitiva di
> concorrenza "universale". I Thread funzionano male in modo specifico in
> Python, e in generale sono una primitiva molto old-school. Tanto che per
> dire in Java hanno costruito tutto un mondo per cui i thread si riescono a
> vedere poco. I processi funzionano meglio sotto molti punti di vista, ma
> anche li... gevent e' un framework che per molti versi ti costringe a fare
> quello che fai con i framework. Twisted pure lui e' un framework.
>
> Quindi... sto scrivendo uno script di utility? Posso usare facilmente
> gevent (perche' ho completo controllo dello script: e' un processo unix che
> creo io e che fa cose). Ma posso usare anche multiprocessing senza grossi
> problemi. Ecco, ora voglio estrarre in una libreria per rendere tutto piu'
> generale. Bene... che faccio? Dipendo da gevent? E la libreria andra' a
> fare a cazzotti con qualcun altro (tipo grequests fa monkey patching
> automatico del mondo e tanti saluti). Non posso farlo. Ok, allora uso
> multiprocessing. Hei, ma siamo sicuri che voglio che chi chiama le mie
> funzioni si trovi sotto il naso un set di workers? Ci ho avuto incubi di
> memoria per sta roba. Ma dai, uso i threads... ma sono sicuro di essere I/O
> bound e non CPU bound. Si... hei, ma quell'altra libreria che uso usa
> multiprocessing, quindi sono a rischio di deadlock se faccio cose anche
> banali tipo loggare.
>
> Ecco... potrei scrivere un adapter che mi permette di fare pluggare il
> modello di concorrenza dal chiamante. Non e' *troppo* doloroso. Se avessi
> tempo potrei anche farlo una volta per tutte. Poi certo... ci vuole un
> qualche tipo di sistema di dependency injection perche' non voglio
> assolutamente che due chiamanti facciano cose non compatibili... bene.
>
> Oppure uso celery. Quindi per la cosa piu' deficiente che devo fare mi
> trovo fra le palle un sistema di code, celery, i worker. E poi anche li,
> saro' io, ma celery ha un mucchio di problemi per i fatti suoi.
>
questo della concorrenza universale è un problema però come ha scritto
#Enrico Bianchi asyncio è stato introdotto nella libreria standard e alcuni
punti che hai elencato vanno a cadere. Certo scrivere codice asincrono
porta dietro i suoi problemi.

Io poi non sono un grande esperto di linguaggi di programmazione ma da quel
poco che ho visto python no è l'unico ad avere questo problema ... a meno
che il linguaggio non sia stato scritto con l'idea della concorrenza.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150302/8503fe3f/attachment-0001.html>


Maggiori informazioni sulla lista Python