Common Lisp存在哪些后台作业处理解决方案?

时间:2016-12-06 06:19:46

标签: lisp common-lisp quicklisp

我需要一个后台作业处理解决方案。一个任务队列,其中worker可以是不同机器上的远程进程。

我在互联网上搜索过,但发现只有Psychiq属于alfa而不建议用于制作。

我不相信,对于像Common Lisp这样成熟的语言,没有其他解决方案。

它们在哪里?

更新

可能的解决方案:

  • lfarm(由@coredump建议)。
  • 使用cl-gearman与客户/工作人员一起使用Gearman(我自己在另一个Google会话中找到)。

1 个答案:

答案 0 :(得分:4)

我不确定这是否与您完全相同,但LFARM可能是一个很好的候选人:

  

lfarm是lparallel的分布式版本,它将工作线程替换为远程进程。例如,lfarm:pmap将细分输入序列,将部件发送到远程机器进行映射,然后组合结果。同样,lfarm:future将承诺中的远程任务执行包装起来。大多数lparallel内核API都保留了很小的变化。

github repository有一些例子。

另请参阅Erlangen,了解基于本机线程的分布式Erlang方法。

  

Erlangen将分布式异步消息传递给Clozure Common Lisp。它使用消息传递协调Clozure CL进程(本机线程),并使用supervison树鼓励容错软件体系结构。它也是透明分布式的,其所有功能都可以跨IP网络无缝运行。因此,它可用于跨不同主机上的多个Clozure CL实例构建应用程序。埃尔兰根借用了Erlang / OTP的许多想法,因而得名。 (这是一个小镇!)