celluloid

    10熱度

    1回答

    最近我有更新我的rails版本4.2.3和ruby版本到ruby-2.2.3。之後,當我捆綁它給出以下錯誤: $ bundle Fetching gem metadata from http://rubygems.org/.......... Fetching version metadata from http://rubygems.org/... Fetching dependency

    1熱度

    1回答

    給定一個賽璐珞Actor的實例,您可以使用future來異步執行Actor方法,並在稍後的某個時間點使用Future的value方法來獲取Actor方法的結果(如果需要阻塞)。 假設我在系統中有兩個單獨的組件,都希望使用相同的Actor方法,可能是非常昂貴的數據庫查詢。如果這兩個組件單獨調用actor.future.expensive_query,那麼該查詢將執行兩次,每個調用者都會將自己的單獨F

    3熱度

    1回答

    從Joe Armstrong's dissertation,他指定一個基於Actor的程序應該按照以下三個步驟進行設計。事情是,我不明白這些步驟如何映射到現實世界的問題或如何應用它們。這是喬的原始建議。 我們確定我們現實世界活動中的所有真正併發活動。 我們確定併發活動之間的所有消息通道。 我們寫下所有可以在不同消息通道上流動的消息。 現在我們編寫程序。程序的結構應該嚴格遵循問題的結構。每個真實世界

    0熱度

    1回答

    我試圖實現一個流Gzip已解壓縮使用從管道Zlib::GzipReader讀取數據,但我似乎無法弄清楚如何做一個非阻塞的方式。下面是相關的代碼: # In thread A read, write = IO.pipe reader = Zlib::GzipReader.new(read) # this blocks reader.each_line do |line| puts

    0熱度

    1回答

    我正在實施一個簡單的程序Celluloid,理想情況下,它們將並行運行幾個參與者,每個參與者將計算一些內容,然後將其結果發回給主演員,其主要任務是彙總結果。 繼this FAQ,我介紹了一個SupervisionGroup,像這樣: module Shuffling class AggregatorActor include Celluloid def ini

    0熱度

    1回答

    我有一個腳本,生成一個用戶指定的IP地址數量,並嘗試在某些端口上連接到它們。我在此腳本中使用賽璐珞以允許合理的速度,因爲同步掃描2000主機可能需要很長時間。但是,假設我告訴腳本掃描2000個隨機主機。我發現它實際上只能掃描大約一半的數字。如果我告訴它掃描3000,我會得到相同的基本結果。如果我做1000或更少,它似乎工作得更好,但即使我只掃描1000個主機,它通常最終會以相對一致的方式結束大約9

    1熱度

    1回答

    我有一個簡單的SuckerPunch作業,我試圖讓它在任何給定時間只運行一個作業。奮力它試圖用賽璐珞和Ruby併發 我有什麼 DataChangeJob.new.async.perform 與 class DataChangeJob include SuckerPunch::Job def perform value = Random.rand Suck

    0熱度

    2回答

    我有一個從url讀取並檢索一些數據的工作者。所以我用池,以實現10名併發工人的併發: require 'nokogiri' require 'open-uri' require 'celluloid/autostart' class WebWorker include Celluloid def get_data url = "http://example.

    2熱度

    1回答

    任務幾乎是實時處理報價單(1秒延遲)。 目前我需要處理約百個報價,但它可能會增加到數千。我正在尋找EM以運行10個線程,每個線程將運行10個異步請求,並將數據放入某個PubSub中供以後處理。 另外我正在測試Celluloid-IO與HTTP寶石。 我是否正確?試圖檢查GitHub是否正在嘗試實施,但失敗了。

    4熱度

    1回答

    我的問題應該能幫助我走上正確的道路。 我正在開發與併發框架celluloid紅寶石應用程序。它下面的樣子: 我有一些插件。我想同時運行它們並等到最後一個結束。我有一個抽象類,名爲PluginFrame,它由所有插件繼承,並提供了一個run方法。 我的想法是做一個SupervisionGroup,但這是正確的想法? 如何運行SupervisionGroup並等到所有組成員都完成後? 建立一個單獨的P