仅在第一个功能将设置全局标志后才能完成响应

时间:2019-06-20 13:57:24

标签: python asynchronous sanic

我有两个功能。首先执行检查服务器服务的url检查。该功能作为sanic-scheduler任务完成,每2秒运行一次。

@task(timedelta(seconds=2)) 
def check_data_status():
    ...
    isProcessed = True  

https://github.com/asmodius/sanic-scheduler

第二个是请求处理程序:

def new_answer(request):
    ...
    # we should wait and complete response only after isProcessed = True
    response answer

new_answer仅应在第一个函数isProcessed = True之后完成响应。

我该怎么做。我正在使用Sanic。

1 个答案:

答案 0 :(得分:0)

Sanic正在使用与asyncio兼容的事件循环,因此您可以为此使用asyncio的内置同步原语:https://docs.python.org/3/library/asyncio-sync.htmlEvent似乎很适合您的情况。