我需要一个后台作业处理的解决方案。一个任务队列,其中工作人员可以是不同机器上的远程进程。
我在互联网上搜索过,但只找到了 alfa 中的Psychiq,不推荐用于生产。
我不相信对于像 Common Lisp 这样成熟的语言没有其他解决方案。
他们在哪里?
更新:
可能的解决方案:
- lfarm(@coredump 建议)。
- Gearman 与使用cl-gearman的客户/工作人员(我自己在另一个谷歌会话中找到)。
我需要一个后台作业处理的解决方案。一个任务队列,其中工作人员可以是不同机器上的远程进程。
我在互联网上搜索过,但只找到了 alfa 中的Psychiq,不推荐用于生产。
我不相信对于像 Common Lisp 这样成熟的语言没有其他解决方案。
他们在哪里?
更新:
可能的解决方案:
我不确定这是否正是您所追求的,但LFARM可能是一个不错的选择:
lfarm 是 lparallel 的分布式版本,它用远程进程替换工作线程。例如 lfarm:pmap 将细分输入序列,将部分发送到远程机器进行映射,然后组合结果。同样,lfarm:future 以承诺的隐喻包装了远程任务执行。大多数 lparallel 内核 API 都保留了一些细微的变化。
github 存储库有一些示例。
另请参阅Erlangen,了解基于本机线程的分布式类似 Erlang 的方法。
Erlangen 为 Clozure Common Lisp 带来了分布式异步消息传递。它使用消息传递编排 Clozure CL 进程(本机线程),并鼓励使用监督树的容错软件架构。它也是透明分布的,它的所有功能都可以在 IP 网络上无缝运行。因此,它可用于跨不同主机上的多个 Clozure CL 实例构建应用程序。Erlangen 借鉴了 Erlang/OTP 的许多想法,因此得名。(它是一个小镇!)