• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python record_event.delay函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中redash.tasks.record_event.delay函数的典型用法代码示例。如果您正苦于以下问题:Python delay函数的具体用法?Python delay怎么用?Python delay使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了delay函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: post

    def post(self):
        req = request.get_json(True)
        require_fields(req, ('options', 'name', 'query_id'))

        alert = models.Alert.create(
            name=req['name'],
            query=req['query_id'],
            user=self.current_user,
            options=req['options']
        )

        record_event.delay({
            'user_id': self.current_user.id,
            'action': 'create',
            'timestamp': int(time.time()),
            'object_id': alert.id,
            'object_type': 'alert'
        })

        # TODO: should be in model?
        models.AlertSubscription.create(alert=alert, user=self.current_user)

        record_event.delay({
            'user_id': self.current_user.id,
            'action': 'subscribe',
            'timestamp': int(time.time()),
            'object_id': alert.id,
            'object_type': 'alert'
        })

        return alert.to_dict()
开发者ID:carezone,项目名称:redash,代码行数:31,代码来源:alerts.py


示例2: record_event

    def record_event(self, options):
        options.update({
            'user_id': self.current_user.id,
            'org_id': self.current_org.id
        })

        record_event.delay(options)
开发者ID:babybits,项目名称:redash,代码行数:7,代码来源:base.py


示例3: post

    def post(self):
        req = request.get_json(True)
        required_fields = ("options", "name", "query_id")
        for f in required_fields:
            if f not in req:
                abort(400)

        alert = models.Alert.create(
            name=req["name"], query=req["query_id"], user=self.current_user, options=req["options"]
        )

        record_event.delay(
            {
                "user_id": self.current_user.id,
                "action": "create",
                "timestamp": int(time.time()),
                "object_id": alert.id,
                "object_type": "alert",
            }
        )

        # TODO: should be in model?
        models.AlertSubscription.create(alert=alert, user=self.current_user)

        record_event.delay(
            {
                "user_id": self.current_user.id,
                "action": "subscribe",
                "timestamp": int(time.time()),
                "object_id": alert.id,
                "object_type": "alert",
            }
        )

        return alert.to_dict()
开发者ID:Bazoozoo,项目名称:redash,代码行数:35,代码来源:controllers.py


示例4: post

    def post(self):
        # TODO: send invite.
        req = request.get_json(force=True)
        require_fields(req, ("name", "email", "password"))

        user = models.User(name=req["name"], email=req["email"])
        user.hash_password(req["password"])
        try:
            user.save()
        except IntegrityError as e:
            if "email" in e.message:
                abort(400, message="Email already taken.")

            abort(500)

        record_event.delay(
            {
                "user_id": self.current_user.id,
                "action": "create",
                "timestamp": int(time.time()),
                "object_id": user.id,
                "object_type": "user",
            }
        )

        return user.to_dict()
开发者ID:carezone,项目名称:redash,代码行数:26,代码来源:users.py


示例5: delete

 def delete(self, alert_id, subscriber_id):
     models.AlertSubscription.unsubscribe(alert_id, subscriber_id)
     record_event.delay({
         'user_id': self.current_user.id,
         'action': 'unsubscribe',
         'timestamp': int(time.time()),
         'object_id': alert_id,
         'object_type': 'alert'
     })
开发者ID:carezone,项目名称:redash,代码行数:9,代码来源:alerts.py


示例6: get

    def get(self, query_id=None, query_result_id=None, filetype='json'):
        # TODO:
        # This method handles two cases: retrieving result by id & retrieving result by query id.
        # They need to be split, as they have different logic (for example, retrieving by query id
        # should check for query parameters and shouldn't cache the result).
        should_cache = query_result_id is not None
        if query_result_id is None and query_id is not None:
            query = get_object_or_404(models.Query.get_by_id_and_org, query_id, self.current_org)
            if query:
                query_result_id = query._data['latest_query_data']

        if query_result_id:
            query_result = get_object_or_404(models.QueryResult.get_by_id_and_org, query_result_id, self.current_org)
        else:
            query_result = None

        if query_result:
            require_access(query_result.data_source.groups, self.current_user, view_only)

            if isinstance(self.current_user, models.ApiUser):
                event = {
                    'user_id': None,
                    'org_id': self.current_org.id,
                    'action': 'api_get',
                    'timestamp': int(time.time()),
                    'api_key': self.current_user.name,
                    'file_type': filetype,
                    'user_agent': request.user_agent.string,
                    'ip': request.remote_addr
                }

                if query_id:
                    event['object_type'] = 'query'
                    event['object_id'] = query_id
                else:
                    event['object_type'] = 'query_result'
                    event['object_id'] = query_result_id

                record_event.delay(event)

            if filetype == 'json':
                response = self.make_json_response(query_result)
            elif filetype == 'xlsx':
                response = self.make_excel_response(query_result)
            else:
                response = self.make_csv_response(query_result)

            if len(settings.ACCESS_CONTROL_ALLOW_ORIGIN) > 0:
                self.add_cors_headers(response.headers)

            if should_cache:
                response.headers.add_header('Cache-Control', 'max-age=%d' % ONE_YEAR)

            return response

        else:
            abort(404, message='No cached result found for this query.')
开发者ID:5t111111,项目名称:redash,代码行数:57,代码来源:query_results.py


示例7: log_user_logged_in

def log_user_logged_in(app, user):
    event = {
        'user_id': user.id,
        'action': 'login',
        'object_type': 'redash',
        'timestamp': int(time.time()),
    }

    record_event.delay(event)
开发者ID:none4uhiggins,项目名称:redash,代码行数:9,代码来源:authentication.py


示例8: delete

 def delete(self, alert_id, subscriber_id):
     models.AlertSubscription.unsubscribe(alert_id, subscriber_id)
     record_event.delay(
         {
             "user_id": self.current_user.id,
             "action": "unsubscribe",
             "timestamp": int(time.time()),
             "object_id": alert_id,
             "object_type": "alert",
         }
     )
开发者ID:Bazoozoo,项目名称:redash,代码行数:11,代码来源:controllers.py


示例9: record_event

def record_event(org, user, options):
    if isinstance(user, ApiUser):
        options.update({"api_key": user.name, "org_id": org.id})
    else:
        options.update({"user_id": user.id, "org_id": org.id})

    options.update({"user_agent": request.user_agent.string, "ip": request.remote_addr})

    if "timestamp" not in options:
        options["timestamp"] = int(time.time())

    record_event_task.delay(options)
开发者ID:easytaxibr,项目名称:redash,代码行数:12,代码来源:base.py


示例10: log_user_logged_in

def log_user_logged_in(app, user):
    event = {
        'org_id': current_org.id,
        'user_id': user.id,
        'action': 'login',
        'object_type': 'redash',
        'timestamp': int(time.time()),
        'user_agent': request.user_agent.string,
        'ip': request.remote_addr
    }

    record_event.delay(event)
开发者ID:appfolio,项目名称:redash,代码行数:12,代码来源:__init__.py


示例11: record_event

    def record_event(self, options):
        if isinstance(self.current_user, ApiUser):
            options.update({
                'api_key': self.current_user.id,
                'org_id': self.current_org.id
            })
        else:
            options.update({
                'user_id': self.current_user.id,
                'org_id': self.current_org.id
            })

        record_event.delay(options)
开发者ID:CyaLiven,项目名称:redash,代码行数:13,代码来源:base.py


示例12: get

    def get(self, query_id=None, query_result_id=None, filetype='json'):
        should_cache = query_result_id is not None
        if query_result_id is None and query_id is not None:
            query = get_object_or_404(models.Query.get_by_id_and_org, query_id, self.current_org)
            if query:
                query_result_id = query._data['latest_query_data']

        if query_result_id:
            query_result = get_object_or_404(models.QueryResult.get_by_id_and_org, query_result_id, self.current_org)

        if query_result:
            if isinstance(self.current_user, models.ApiUser):
                event = {
                    'user_id': None,
                    'org_id': self.current_org.id,
                    'action': 'api_get',
                    'timestamp': int(time.time()),
                    'api_key': self.current_user.id,
                    'file_type': filetype
                }

                if query_id:
                    event['object_type'] = 'query'
                    event['object_id'] = query_id
                else:
                    event['object_type'] = 'query_result'
                    event['object_id'] = query_result_id

                record_event.delay(event)

            if filetype == 'json':
                response = self.make_json_response(query_result)
            elif filetype == 'xlsx':
                response = self.make_excel_response(query_result)
            else:
                response = self.make_csv_response(query_result)

            if len(settings.ACCESS_CONTROL_ALLOW_ORIGIN) > 0:
                self.add_cors_headers(response.headers)

            if should_cache:
                response.headers.add_header('Cache-Control', 'max-age=%d' % ONE_YEAR)

            return response

        else:
            abort(404)
开发者ID:MoveOnOrg,项目名称:redash,代码行数:47,代码来源:query_results.py


示例13: get

    def get(self, query_id=None, query_result_id=None, filetype='json'):
        if query_result_id is None and query_id is not None:
            query = models.Query.get(models.Query.id == query_id)
            if query:
                query_result_id = query._data['latest_query_data']

        if query_result_id:
            query_result = models.QueryResult.get_by_id(query_result_id)

        if query_result:
            if isinstance(self.current_user, models.ApiUser):
                event = {
                    'user_id': None,
                    'action': 'api_get',
                    'timestamp': int(time.time()),
                    'api_key': self.current_user.id,
                    'file_type': filetype
                }

                if query_id:
                    event['object_type'] = 'query'
                    event['object_id'] = query_id
                else:
                    event['object_type'] = 'query_result'
                    event['object_id'] = query_result_id

                record_event.delay(event)

            headers = {}

            if len(settings.ACCESS_CONTROL_ALLOW_ORIGIN) > 0:
                self.add_cors_headers(headers)

            if filetype == 'json':
                data = json.dumps({'query_result': query_result.to_dict()}, cls=utils.JSONEncoder)
                headers.update(cache_headers)
                return make_response(data, 200, headers)
            else:
                return self.csv_response(query_result)

        else:
            abort(404)
开发者ID:KensoDev,项目名称:redash,代码行数:42,代码来源:controllers.py


示例14: get

    def get(self, query_id=None, query_result_id=None, filetype="json"):
        if query_result_id is None and query_id is not None:
            query = models.Query.get(models.Query.id == query_id)
            if query:
                query_result_id = query._data["latest_query_data"]

        if query_result_id:
            query_result = models.QueryResult.get_by_id(query_result_id)

        if query_result:
            if isinstance(self.current_user, models.ApiUser):
                event = {
                    "user_id": None,
                    "action": "api_get",
                    "timestamp": int(time.time()),
                    "api_key": self.current_user.id,
                    "file_type": filetype,
                }

                if query_id:
                    event["object_type"] = "query"
                    event["object_id"] = query_id
                else:
                    event["object_type"] = "query_result"
                    event["object_id"] = query_result_id

                record_event.delay(event)

            headers = {}

            if len(settings.ACCESS_CONTROL_ALLOW_ORIGIN) > 0:
                self.add_cors_headers(headers)

            if filetype == "json":
                data = json.dumps({"query_result": query_result.to_dict()}, cls=utils.JSONEncoder)
                headers.update(cache_headers)
                return make_response(data, 200, headers)
            else:
                return self.csv_response(query_result)

        else:
            abort(404)
开发者ID:Bazoozoo,项目名称:redash,代码行数:42,代码来源:controllers.py


示例15: record_event

def record_event(org, user, options):
    if isinstance(user, ApiUser):
        options.update({
            'api_key': user.name,
            'org_id': org.id
        })
    else:
        options.update({
            'user_id': user.id,
            'org_id': org.id
        })

    options.update({
        'user_agent': request.user_agent.string,
        'ip': request.remote_addr
    })

    if 'timestamp' not in options:
        options['timestamp'] = int(time.time())

    record_event_task.delay(options)
开发者ID:rezaprimasatya,项目名称:redash,代码行数:21,代码来源:base.py


示例16: get

    def get(self, query_id=None, query_result_id=None, filetype='json'):
        """
        Retrieve query results.

        :param number query_id: The ID of the query whose results should be fetched
        :param number query_result_id: the ID of the query result to fetch
        :param string filetype: Format to return. One of 'json', 'xlsx', or 'csv'. Defaults to 'json'.

        :<json number id: Query result ID
        :<json string query: Query that produced this result
        :<json string query_hash: Hash code for query text
        :<json object data: Query output
        :<json number data_source_id: ID of data source that produced this result
        :<json number runtime: Length of execution time in seconds
        :<json string retrieved_at: Query retrieval date/time, in ISO format
        """
        # TODO:
        # This method handles two cases: retrieving result by id & retrieving result by query id.
        # They need to be split, as they have different logic (for example, retrieving by query id
        # should check for query parameters and shouldn't cache the result).
        should_cache = query_result_id is not None

        parameter_values = collect_parameters_from_request(request.args)
        max_age = int(request.args.get('maxAge', 0))

        query_result = None

        if query_result_id:
            query_result = get_object_or_404(models.QueryResult.get_by_id_and_org, query_result_id, self.current_org)

        if query_id is not None:
            query = get_object_or_404(models.Query.get_by_id_and_org, query_id, self.current_org)

            if query_result is None and query is not None:
                if settings.ALLOW_PARAMETERS_IN_EMBEDS and parameter_values:
                    query_result = run_query_sync(query.data_source, parameter_values, query.query_text, max_age=max_age)
                elif query.latest_query_data_id is not None:
                    query_result = get_object_or_404(models.QueryResult.get_by_id_and_org, query.latest_query_data_id, self.current_org)

            if query is not None and query_result is not None and self.current_user.is_api_user():
                if query.query_hash != query_result.query_hash:
                    abort(404, message='No cached result found for this query.')

        if query_result:
            require_access(query_result.data_source.groups, self.current_user, view_only)

            if isinstance(self.current_user, models.ApiUser):
                event = {
                    'user_id': None,
                    'org_id': self.current_org.id,
                    'action': 'api_get',
                    'api_key': self.current_user.name,
                    'file_type': filetype,
                    'user_agent': request.user_agent.string,
                    'ip': request.remote_addr
                }

                if query_id:
                    event['object_type'] = 'query'
                    event['object_id'] = query_id
                else:
                    event['object_type'] = 'query_result'
                    event['object_id'] = query_result_id

                record_event.delay(event)

            if filetype == 'json':
                response = self.make_json_response(query_result)
            elif filetype == 'xlsx':
                response = self.make_excel_response(query_result)
            else:
                response = self.make_csv_response(query_result)

            if len(settings.ACCESS_CONTROL_ALLOW_ORIGIN) > 0:
                self.add_cors_headers(response.headers)

            if should_cache:
                response.headers.add_header('Cache-Control', 'private,max-age=%d' % ONE_YEAR)

            return response

        else:
            abort(404, message='No cached result found for this query.')
开发者ID:jonyboy2000,项目名称:redash,代码行数:83,代码来源:query_results.py


示例17: post

 def post(self):
     events_list = request.get_json(force=True)
     for event in events_list:
         record_event.delay(event)
开发者ID:carezone,项目名称:redash,代码行数:4,代码来源:events.py



注:本文中的redash.tasks.record_event.delay函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python utils.gen_query_hash函数代码示例发布时间:2022-05-26
下一篇:
Python tasks.QueryTask类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap