cost 221 ms
帶有 F# 郵箱處理器慢的銀行帳戶卡塔

[英]Bank account kata with F# MailboxProcessor slow

我已經使用 F# MailboxProcessor對“經典”銀行帳戶 kata進行了編碼,以確保線程安全。 但是,當我嘗試將交易並行添加到帳戶時,速度非常慢非常快:10 個並行調用響應(2 毫秒),20 個不響應(9 秒)! (查看最后一個測試Account can be updated from ...

F# MailboxProcessor 異步混亂打印語句

[英]F# MailboxProcessor async messed print statements

我正在嘗試制作一個正在處理訂單的酒吧模擬器。 發送給代理的消息屬於這種類型。 代理是下面實現的一個吧class。 當我將消息發送給代理時,它正在以非常混亂的方式打印內容。 如我所見,它應該打印代碼中編寫的每條語句。 ...

F# 異步讓! & 返回! 計算表達式

[英]F# Async let! & return! computation expression

我已經開始閱讀有關計算表達式的內容,據我所知 - 它有一些默認和自定義的隱藏實現。 我會提供我理解的東西並請糾正我。 例如,在這種情況下,我們定義了一個自定義實現來使用 let.. 這樣每個表達式都綁定到 let! 記錄器塊內部將記錄到控制台。 我不記得准確但我讀過,如果我們不為其提供實現 - 它有 ...

郵箱處理器不終止

[英]mailboxprocessor does not terminate

我在消息循環中有一個超時異常(我真的打算設置一個超時),我試圖按如下方式捕獲它 我可以看到控制台中打印的超時消息,但程序永遠不會結束:我錯過了什么? 這就是我在代碼中調用printerAgent的方式 請注意,使用inbox.Receive()它最終會在幾分鍾后正常終止,但我的目標是設置超時(例如 ...

F# Array.Parallel.map 不提供並行處理

[英]F# Array.Parallel.map does not provide parallel processing

我必須在 F# 中模擬一個離散環境,由 Python 調用,以解決強化學習問題。 我有一個帶有原始類型(主要是浮點數)的 function,以使數據交換更順暢。 現在我在 position 用不同的數據多次運行這個 function,所以並行運行它似乎是個好主意。 我有以下代碼: 最后我打電話給 f ...

F# 中的事件、觀察者和郵箱處理器的澄清

[英]Clarification of Events vs Observer vs MailboxProcessor in F#

我有一個與金融市場相連的系統,它大量使用事件。 所有代碼都被構造為級聯事件,中間有過濾器、聚合等。 Originally the system was written in C# and then ported to F# (which in retrospect was a great move ...

F# MailboxProcessor.PostAndReply 是否阻止發布?

[英]F# Does MailboxProcessor.PostAndReply blocks Post?

假設我調用MailboxProcessor.PostAndReply ,由於任何原因,它可能會運行很長時間。 如果我在第一個調用尚未返回時從其他線程調用MailboxProcessor.Post會發生什么? 我的意思是,是的,當然,我可以編寫一個測試來重現這種情況。 然而,在我開始重新發明自行車之 ...

在 F# 中動態處理運行時間較長的並發作業

[英]Dynamically handling longer running concurrent jobs in F#

我正在努力尋找在 F# 中處理更長時間運行的請求/作業的正確方法。 要求: 一個作業由多個步驟組成(需要按順序執行)。 一項工作可能需要幾分鍾,比如最多 10 分鍾。 一個步驟可能涉及 IO 操作和等待時間,例如直到該步驟創建的文件被其他應用程序處理然后返回。 一個步驟可能會失敗 ...

無法通過郵箱處理器(F#)保持狀態

[英]Unable to keep state with mailbox processor (F#)

我正在嘗試創建一個字符串列表,該列表將在郵箱處理器的幫助下逐步將元素逐步異步插入。 但是我沒有得到想要的輸出。 我幾乎遵循了https://fsharpforfunandprofit.com/posts/concurrency-actor-model/中的代碼,但是對於我來說,它似乎無法 ...

如果程序立即失敗,則無法運行MailboxProcessor第一個循環

[英]MailboxProcessor first loop can't run if program immediately fails

我有一個命令定期運行SFTP檢查並將結果記錄到文件中。 它遍歷MailboxProcessor 調用它來將消息寫入日志 文件下載是異步的 ,以及相應的消息,但似乎都可以正常工作。 問題是 - 如果由於某些原因,sftp連接立即失敗, MailboxProcessor ...

使用TableDependency和F#等待數據庫行加載

[英]Waiting for database rows to load using TableDependency and F#

我有一個F#項目,該項目將一些文件加載​​到外部子系統,然后使用表依賴項來等待一些行添加到表中,這是副作用。 在以下類型中使用表依賴關系來監視數據庫更改。 當添加/更改行/執行任何操作時,它將觸發自定義事件: // just using this type for the Record ...

F#MailboxProcessor限制並行性

[英]F# MailboxProcessor limit parallelism

我是F#的新手並嘗試使用MailboxProcessor來確保狀態更改是孤立完成的。 簡而言之,我將動作(描述狀態通道的不可變對象)發布到MailboxProcessor,在遞歸函數中我讀取消息並生成新狀態(即在下面的示例中將項添加到集合中)並將該狀態發送到下一次遞歸。 預期產出是 ...

F#事件在Async工作流中不起作用

[英]F# events not working inside Async workflow

我想對代理人進行Post-Fire-Reply。 基本上,代理觸發事件然后回復調用者。 但是,我要么繼續收到超時錯誤,要么事件無法正確觸發。 我嘗試過Post-Fire,它停止了超時錯誤,但事件沒有觸發。 這是一個簡單的實驗,它重復創建一個函數來查找Collat​​z系列中的下一個 ...

等待郵箱處理器

[英]Wait on the mailboxprocessor

是否可以等待郵箱處理器,以下代碼在F#交互中有效,但是有沒有辦法在應用程序或單元測試中等待它? ...

API速率限制器間歇性懸掛

[英]API Rate Limiter Intermittent Hanging

我寫了一個簡單的(我認為...)速率限制器,以將事件驅動系統保持在我們的許可API命中限制之下。 出於某種原因, 有時會在發送400-500個請求后將其占用。 我最好的想法是我搞砸了等待函數,所以在某些情況下它永遠不會返回,但我無法找到有缺陷的邏輯。 另一個想法是我拙劣的異步/任務互操 ...

在完成期間MailboxProcessor崩潰

[英]MailboxProcessor crashes during Finalize

該代碼在Mono(5.4.1.7)上運行。 我正在使用F#的代理來處理Web應用程序中的許多數據處理,其中之一就是關機。 處理已發布的關機消息后,代理會清理某些內容並停止其消息循環。 這很好用,但如果我嘗試從Finalize()執行Shutdown,它會炸毀我的臉。 我設法重現了這一 ...

郵箱處理器,最新消息

[英]Mailboxprocessor, latest message

設置類似於此 。 一個代理( dataSource )正在生成數據,而單個代理( dataProcessor )正在處理數據。 生成的數據比dataProcessor可以處理的要dataProcessor ,我對處理所有消息不感興趣,只是處理最新的數據。 Jon Harrop在那里提出 ...

具有多個遞歸異步體的F#代理可以在每個中使用多個inbox.Receive()嗎?

[英]Can an F# agent with multiple recursive async bodies use multiple inbox.Receive() in each?

我在這里有一個多狀態F#MailboxProcessor示例,只是想知道它為什么編譯但行為是意外的 - F#代理只能在傳入的lambda函數中有一個inbox.Receive()語句嗎? 我試圖遵循“專家F#3.0”頁面284中提供的一般示例模式,其中使用多個異步{}實體允許多個狀態,但是沒有 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM