【发布时间】:2019-04-26 15:11:01
【问题描述】:
我最近一直在研究芹菜。我以前用的不多,但我想用异步方式处理对我的数据库的 sql 查询,这样 1 个数据点就不会阻止网页加载。 (这是一个很好的用例吗?)
我已经实现了类似下面的东西,但它似乎是多余的,可能有更好的方法来做到这一点。我真的很感激一些批评和建议。
示例代码:
@celery.task
def _get_player_name(player_tag):
player = PlayerStatsCurrent.query.filter_by(player_tag=player_tag).first()
return player.player_name
def get_player_name(player_tag):
result = _get_player_name.delay(player_tag)
while not result.ready():
time.sleep(0.5)
player_name = result.get()
return player_name
在上面的示例中,我的网页调用了get_player_name 以及其他一些看起来相似但计算量更大的函数。
代码有效。我得到了预期的输出。我只是想让它更“pythonic”,因为它现在看起来并不干燥,而且我不擅长芹菜,不知道该怎么做。提前感谢您的帮助。
【问题讨论】:
标签: python flask sqlalchemy celery flask-sqlalchemy