clojure - Python3 关闭 IPC

标签 clojure python-3.x ipc rpc

我有一个奇怪的要求。我们处于需要在我们的 python3.3 worker 和数据库之间运行基于 clojure 的服务的位置。出于这个原因,我正在研究在 python 和 clojure 之间进行交互的不同方法。我查看了 Thrift,但不幸的是它还没有 python3 支持。 0mq 看起来也很有趣,但我担心 req/req 模式会阻塞 python3 线程(多个进程上会有多个线程需要使用此代理服务)。

是否还有其他现有的图书馆可以帮助我?在一天结束时,我可以使用 aleph 和原始套接字从头开始编写我自己的服务,但我觉得那样会重新发明轮子太多了。

最佳答案

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。

关于clojure - Python3 关闭 IPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943408/

相关文章:

clojure - 将函数映射传递给宏

google-app-engine - App Engine 上是否仍禁用 Clojure 并发支持?

python - 如何使用python在mapreduce中的直方图(Graph)中获取结果?

c++ - 使用 Windows 共享内存共享小数据

c# - 命名管道 C# 客户端无法连接到 C++ 服务器

clojure - 宏内调用函数和宏的区别?

java - 使用 javax.sound.midi.Sequencer 的 Clojure 问题

python - 如何将 Motor Latent CommandCursor 转换为列表

python - 重新排列 linregress python 中的标题

c# - 我可以从我的外部 .dll 访问我的 c# 对象吗?也许使用 ROT