簡體   English   中英

如何在浮士德中使用並發?

[英]How to use concurrency in Faust?

我正在嘗試在我的代碼中實現 Faust 庫以使用來自 Kafka 的數據,異步運行一些代碼並將數據返回給 Kafka。 我遵循了文檔<\/a>,但似乎在我的代碼(或我對浮士德如何工作的理解)中犯了一個錯誤,因為我的應用程序中的浮士德當前一次使用來自 Kafka 的消息,並且只有在將數據返回給 Kafka 之后才會它開始使用另一條消息。

我的代碼:

app = faust.App('app_faust', broker=[...], store='rocksdb://')



class Company(faust.Record):
    company_id: str
    task_id: int


topic_c = app.topic(
    'topic_name',
    key_type=bytes,
    value_type=Company,
)
topic_p = app.topic(
    'another_topic_name',
    key_type=bytes,
    value_type=Company,
)

@app.agent('topic_name', sink=[topic_p], value_type=Company, concurrency=4)
async def test(data: faust.Stream):
    async for company in data:
        if data and company.company_id and company.task_id:
            yield some_function(company)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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