【发布时间】:2013-07-05 11:33:10
【问题描述】:
我正在尝试从 Celery 任务中调用编译/解释的代码。代码不是用 Python 编写的。
我想知道是否有比我想的更好的解决方案。
解决方案 1。启动另一个进程并执行/解释我感兴趣的一段代码。这会产生创建和终止进程的开销。对于一个非常小的任务,这个开销可能太高了。
解决方案 2。使用可以从目标语言执行代码的侦听器进程。它可以在本地套接字上侦听函数签名(也称为 add(2,2),在同一个套接字上执行并返回结果。侦听器还可以实现诸如进程/线程池之类的东西来有效地处理多个任务。
解决方案 3(感谢 AndrewS)。构建一个工作进程(连接到代理)。这意味着将 Celery worker 重写为目标语言。就开发工作而言,这是三者中最昂贵的版本。
【问题讨论】:
-
是否可以选择以目标语言构建工作进程(连接到代理)?您将使用代理将目标语言和 Python 解耦。
-
这是一种解决方案,但就成本效益而言不是理想的解决方案,因为它是三者中最昂贵的。我会将它添加到列表中。谢谢。