我正在尝试从 Celery 任务中调用编译/解释的代码。代码是用 Python 以外的东西编写的。
我想知道是否有比我正在考虑的问题更好的解决方案。
解决方案 1。启动另一个进程并执行/解释我感兴趣的一段代码。这会产生创建和终止进程的开销。对于一个非常小的任务,这个开销可能太高了。
解决方案 2。使用可以从目标语言执行代码的侦听器进程。它可以在本地套接字上侦听函数签名(又名 add(2,2),在同一个套接字上执行并返回结果。侦听器还可以实现类似进程/线程池的东西来有效地处理多个任务。
解决方案 3(感谢 AndrewS)。构建一个工作进程(连接到代理)。这意味着将 Celery worker 重写为目标语言。就开发工作而言,这是三者中最昂贵的版本。