我试图在一段时间后将浮士德表的数据(count)发布到Kafka主题中。当我发布一些简单的字符串时,计时器正在工作,但它无法以某种方式访问表的数据。以下是计时器的代码:
@app.timer(interval=10.0)
async def publish_to_anomaly_topic():
await anomaly_topic.send(
value=str(page_views['total'].value())
)
@app.agent(page_view_topic)
async def count_page_views(views):
async for view in views.group_by(PageView.id):
total=0
page_views[view.id]+=1
for everykey in list(page_views.keys()):
if everykey != 'total':
total+=page_views[everykey].value()
page_views['total'] = total
代理工作正常。我能够正确地看到这些值。
1条答案
按热度按时间q1qsirdb1#
经过大量的实验,结果证明,您无法使用app计时器访问表的值(即使您在创建表时指定了relative\ field选项)。解决这个问题的一个方法是创建另一个表来维护消息的时间戳,并在业务逻辑中使用它们。
其中page\u views\u timer是创建的新表。