我需要一个后台作业处理的解决方案任务队列,其中的工作进程可以是不同计算机上的远程进程。
我在网上搜索过,但只找到了Psychiq这是在alfa,不建议生产。
我不相信像Common Lisp这样成熟的语言没有其他的解决方案。
他们在哪里?
更新:
可能的解决方案:
lfarm(由@coredump建议)。
Gearman和客户/工人使用cl-gearman(我在另一个google会话中发现)。
最佳答案
我不确定这是否正是你所追求的,但LFARM可能是一个很好的候选人:
lfarm是lparallel的分布式版本,它用远程进程替换工作线程例如lfarm:pmap将细分输入序列,将零件发送到远程机器进行映射,然后合并结果同样,lfarm:future将远程任务的执行包装在承诺的隐喻中大部分lparallel内核API都保留了少量的变化。
github repository有一些例子。
有关基于本机线程的分布式类erlang方法,请参见Erlangen。
erlangen将分布式异步消息传递给clozure common lisp。它使用消息传递协调Clozure CL进程(本机线程),并鼓励使用管理树的容错软件体系结构它也是透明分布的,它的所有功能都可以无缝地跨IP网络工作因此,它可以用于在不同主机上跨多个Clozure CL实例构建应用程序Erlangen借鉴了Erlang/OTP的许多思想,因此得名(这是个小镇!)