4

奇妙なリクエストがあります。私たちは、python3.3ワーカーとデータベースの間でclojureベースのサービスを実行する必要がある立場にあります。このため、Pythonとclojureの間のインターフェースのさまざまな方法を検討しています。Thriftを見ましたが、残念ながらまだpython3をサポートしていません。0mqも面白そうに見えましたが、リクエスト/リクエストパターンがpython3スレッドをブロックしているのではないかと心配しています(このプロキシサービスを使用する必要がある複数のプロセスに複数のスレッドがあります)。

ここで私を助けることができる他の既存のライブラリが存在しますか?結局のところ、アレフとrawソケットを使用してゼロから独自のサービスを作成することはできましたが、それでは車輪の再発明が多すぎると感じています。

4

2 に答える 2

5

ClojureはJVMを意味します。JVMで実行されているほとんどの言語では、「Javaの呼び出し」と「Javaによる呼び出し」が許可されています。これは、基本的にJVM上の他のすべてのことを意味します。私はそれをやったことはありませんが、おそらくJythonからClojureに電話することができます。現在、JythonはPython 3言語をサポートしていませんが、Pyroはサポートしています。

それは少し遠いですが、あなたは試すことができます:

                                     JVM
     Python-VM             Jython           Clojure
( Your app -> Pyro ) --> ( Pyro -> Proxy -> Your app )

RMIの引数は、おそらくJavaプリミティブとJava文字列に変換する必要があります。また、ClassLoader-Voodooが必要になる場合があります。

于 2012-12-19T01:03:50.340 に答える
2

私はこれまでのところ、PythonでZeroMQを本番環境で非常にうまく使用しています。Clojureのサポートもありますが、これはまだ実際には使用していません。ネイティブライブラリが必要であり、少し不便です。完全なRPCメカニズムではありませんが、ZeroMQリファレンスを使用します。これは、RPCの問題は、1つ以上のメッセージキューでの操作としてかなり単純に分類できることが多いためです。

一方、clojure-pyもあります。これにより、Pythonを使用して、Clojureも食べることができます。それはまだかなり若く、ラフなエッジがないわけではありませんが、コア機能のほとんどは整っています。

最後に、PythonとClojureを単純に接着するだけの場合は、ClojurePythonの両方にライブラリがあるXML-RPCが常にあります。

于 2012-12-19T03:15:11.327 に答える