[英]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)
根據文檔:
當您的應用程序沒有 RocksDB 時,它可以工作。
https:\/\/faust.readthedocs.io\/en\/latest\/userguide\/application.html?highlight=concurrency#app-table-define-a-new-table<\/a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.