1

バックグラウンド ジョブ処理のソリューションが必要です。ワーカーが異なるマシン上のリモート プロセスになることができるタスク キュー。

インターネットで検索しましたが、アルファ版であり、製品には推奨されていないPsychiqしか見つかりませんでした。

Common Lisp のような成熟した言語には、他の解決策がないとは思えません。

彼らはどこにいますか?

更新

可能な解決策:

  • lfarm (@coredump が推奨)。
  • cl-gearmanを使用するクライアント/ワーカーを持つGearman (さらに別の Google セッションで私自身が見つけました)。
4

1 に答える 1

4

これがまさにあなたが求めているものかどうかはわかりませんが、 LFARMは良い候補かもしれません:

lfarm は、ワーカー スレッドをリモート プロセスに置き換える lparallel の分散バージョンです。たとえば、lfarm:pmap は入力シーケンスを細分化し、その部分をマッピングのためにリモート マシンに送信してから、結果を結合します。同様に、lfarm:future はリモート タスクの実行を約束のメタファーでラップします。ほとんどの lparallel カーネル API は保持されますが、わずかな違いがあります。

github リポジトリにはいくつかの例があります。

ネイティブ スレッドに基づく分散型 Erlang のようなアプローチについては、Erlangenも参照してください。

Erlangen は、分散型の非同期メッセージ パッシングを Clozure Common Lisp にもたらします。メッセージ パッシングを使用して Clozure CL プロセス (ネイティブ スレッド) を調整し、スーパーバイソン ツリーを使用してフォールト トレラントなソフトウェア アーキテクチャを促進します。また、透過的に分散され、すべての機能が IP ネットワーク全体でシームレスに動作します。したがって、異なるホスト上の複数の Clozure CL インスタンスにまたがるアプリケーションを構築するために使用できます。Erlangen は Erlang/OTP から多くのアイデアを借りているため、その名前が付けられました。(町です!)

于 2016-12-06T06:51:27.790 に答える