我有一个带有flask-socketio装饰器的函数。在我的应用程序的一部分中,我正在使用celery,在此过程中,我想调用装饰器下面的函数
clear()
问题是该事件在内部使用current_user,我该如何模拟常规调用?只是为了提高代码效率,所以我不必在celery任务中重新创建完全相同的功能。
我认为是这样的:
@socketio.on('Example')
@authenticated_only
def example(data):
...
但是我不确定该解决方案,我什至不尝试
答案 0 :(得分:0)
您可以执行以下操作:
def basic_example(data, user):
# do everything here
@socketio.on('Example')
@authenticated_only
def example(data):
basic_example(data, current_user)
@celery.task()
def celery_task:
user = User.query.filter...
basic_example(data, user)