Вопросы по теме 'core.async'

Можем ли мы описать Clojure core.async как «стиль передачи продолжения»?
В библиотеке core.async мы видим файл макрос, создающий конечный автомат , который охватывает go блоков для создания каналов, которые обрабатывают блокировка ввода-вывода. Похоже, это моделирование C# async и на горутины Go-lang ....
844 просмотров

Предотвратить завершение программы во время бесконечного выполнения блоков go?
Я написал автономный uberjar с основным методом, который запускает два блока go следующим образом: (defn -main [& args] (let [c (chan)] (go (while true (>! c (rand)))) (go (while true (<! c))))) Но...
264 просмотров
schedule 13.11.2022

Clojure, как остановить все блоки go или закрыть все каналы в core.async
все слишком часто, когда я использую core.async из блока repl, a go ускользает от меня, потому что я теряю канал, который используется для его остановки, потому что я перезагружаю пространство имен. Например, если я запускаю это из repl: (go...
1628 просмотров
schedule 04.06.2023

Clojurescript + Om: дождитесь изменения состояния, затем сделайте что-нибудь
Я пытаюсь создать приложение Clojurescript, которое показывает рецепты. Далее следует соответствующий код (также доступен как суть ): (defn load-recipes [data] (go (if (not (:loaded? @data)) (let [recipes-data (<! (fetch-recipes...
720 просмотров

Создание атома clojurescript, который работает с частотой сердцебиения
(ns example.asyncq (:require [cljs.core.async :as async] goog.async.AnimationDelay) (:require-macros [cljs.core.async.macros :refer [go go-loop]])) (defn loop-fx-on-atm-when-pred?-is-true [atm fx pred?] (let [c (async/chan) f...
242 просмотров
schedule 13.05.2022

Несколько блоков прослушивания/перехода для канала в ClojureScript
Учитывая канал в ClojureScript (def navigation (chan)) Возможно ли иметь несколько блоков go, которые извлекают из него значения? Например. (go (while true (secretary/dispatch! (<! navigation)))) (go (while true (println...
627 просмотров
schedule 21.06.2023

Core.async ‹! тупик канала
Почему Alpha останавливается раньше, когда я ожидаю, что она будет вести себя как Beta? Единственная разница между Alpha и Beta — это >! и put! , как указано ниже. Альфа: user=> (def q (chan)) #'user/q user=> (def counter (atom...
293 просмотров
schedule 07.05.2023

Как надежно выполнять большое количество одновременных HTTPS-запросов в Clojure (/Java)
У меня есть поток входных данных, и я хочу сделать 2 HTTPS сетевых запроса для каждого, прежде чем передавать результат в другую часть программы. Типичная пропускная способность составляет 50 в секунду. for each input: HTTP request A...
1449 просмотров

Использование содержимого файла с помощью Clojure core.async
Я пытаюсь использовать библиотеку Clojure core.async для использования/обработки строк из файла. Когда мой код выполняется, IOException: Stream closed является броском. Ниже приведен сеанс REPL, который воспроизводит ту же проблему, что и в...
693 просмотров
schedule 13.09.2022

Thread/sleep внутри блока Clojure go
У меня внутренний конфликт по поводу использования Thread/sleep внутри блока go Clojure. Обычно не рекомендуется иметь какие-либо длительные процессы внутри блоков go, и Stuart Sierra упоминает, что сон в блоке go не предпочтителен : В общем,...
1533 просмотров
schedule 01.11.2023

Использование канала в case
(let [a (clojure.core.async/chan)] (case a a :foo :bar)) #=> :bar Я бы ожидал :foo здесь. Что я делаю не так? С другой стороны, (condp = chan ...) выполняет свою работу. PS: В основном я пытаюсь сделать следующее:...
70 просмотров
schedule 24.10.2023

clojure core.async — неожиданные несоответствия
я не занимался Clojure пару лет, поэтому решил вернуться и не игнорировать core.async на этот раз) довольно крутая штука, но это меня почти сразу удивило. Теперь я понимаю, что существует неотъемлемая индетерминизм, когда задействовано несколько...
241 просмотров
schedule 10.10.2023

Clojure core.async и c10k
Насколько мне известно, асинхронные приложения с пулом потоков используются для того, чтобы не создавать новый поток для каждого соединения. Когда это решается с помощью блоков go в core.async, где сокет IO может быть припаркован, как это возможно...
135 просмотров
schedule 23.05.2022

clojure core async и servlet undeploy
Я использую Clojure core.async в программе сервлета. Я подозреваю утечку памяти в программе, и я обнаружил, что общее количество живых потоков не уменьшается, когда я отменяю развертывание своего приложения с сервера приложений (Glassfish). У...
70 просмотров